使用INT vs GUID作为主键是否有效率优势?

时间:2016-06-29 06:03:37

标签: sql-server

我有一种情况,我正在考虑使用INT(随机生成)或GUID作为表的主键。我完全意识到随机生成的INT可以创建一个副本,但我可以很容易地处理这个,我准备接受这个,所以复制的可能性不是问题的一部分。

鉴于我很可能因为重复INT的可能性非常小。

使用INT vs GUID作为主键还是在索引中是否有优点或缺点?当涉及到范围搜索时,SQL Server是否更好地处理了一个或另一个? SQL Server是否对GUID和INT进行了任何优化?

1 个答案:

答案 0 :(得分:1)

如果您关注性能,那么int将因为数据类型的大小而超越GUID实现。您是使用uniqueidentifier类型还是使用char(32)进行比较?任何一个都比int实现慢。

然而,根据您正在构建的应用程序类型,GUID是一个不错的选择。如果你正在构建一些你希望能够生成一个独特的"触摸任何状态机之前的标识符,然后使用GUID。

如果您是数据库人员,您可能会发现自己倾向于使用int。

如果您是应用程序开发人员,您可能会发现自己倾向于GUID。

只是一个简单的问题,为什么不使用sequence

这取决于。

希望这有帮助。