一尘不染

SQL主键,INT还是GUID或..?

sql

有什么原因为什么我不应该将整数用作表的主键?

数据库是SQL-
CE,两个主表,每年约50,000个条目,以及一些次要表。只有两个连接会不断向数据库开放。但是更新将通过多个TCP套接字连接触发,因此将有许多访问和使用同一数据库连接的跨线程。尽管活动非常少,所以同时更新的可能性很小,但每天最多可能会发生两次。

可能会将LINQ2SQL用于DAL或类型化的数据集。

不知道此信息是否相关,但这就是我要问的原因,因为我不知道:)


阅读 315

收藏
2021-03-17

共1个答案

一尘不染

使用GUIDprimkey的优点是它在世界上应该是唯一的,例如是否将数据从一个数据库移动到另一个数据库。因此,您知道该行是唯一的。

但是,如果我们谈论的是小数据库,那么我更喜欢整数。

编辑:

如果您使用的是SQL Server 2005
++,是否还可以使用NEWSEQUENTIALID(),它会根据上面的行生成一个GUID。因此,不再存在newid()的索引问题。

2021-03-17