我已经多次看到两种数据类型唯一标识符和长整数作为数据表的主键。哪一个更好?请分享您的意见。两者各有优劣。
问问题
253 次
1 回答
1
if you don't have a specific reason to use GUIDs, use INTs.
GUID的优势:
唯一标识符更好,因为
guaranteed to always return a unique value across space and time
我不知道创建 GUID 的全部机制,但我似乎记得它与网卡上的 MAC 地址和系统时间有关。
如果您是,这会派上用场
consolidating records from multiple SQL Servers into one table
,例如在数据仓库的情况下。SQL Server 复制还大量使用 GUID 来跟踪分布在多个 SQL Server 中的行。
DISADVANTAGEOUS OF GUID:
无法确定生成 uniqueidentifier 值的顺序。它们不适合依赖于连续增加键值的现有应用程序
使用 GUID 作为键值的主要缺点是它们很大。基于 GUID 构建的索引将比基于 IDENTITY 列构建的索引更大且更慢
- 由于高随机性,GUID 作为集群键存在问题
于 2012-11-20T04:48:07.757 回答