我有一种情况,我正在考虑使用INT(随机生成)或GUID作为表的主键。我完全意识到随机生成的INT可以创建一个副本,但我可以很容易地处理这个,我准备接受这个,所以复制的可能性不是问题的一部分。
鉴于我很可能因为重复INT的可能性非常小。
使用INT vs GUID作为主键还是在索引中是否有优点或缺点?当涉及到范围搜索时,SQL Server是否更好地处理了一个或另一个? SQL Server是否对GUID和INT进行了任何优化?
答案 0 :(得分:1)
如果您关注性能,那么int
将因为数据类型的大小而超越GUID实现。您是使用uniqueidentifier
类型还是使用char(32)
进行比较?任何一个都比int
实现慢。
然而,根据您正在构建的应用程序类型,GUID是一个不错的选择。如果你正在构建一些你希望能够生成一个独特的"触摸任何状态机之前的标识符,然后使用GUID。
如果您是数据库人员,您可能会发现自己倾向于使用int。
如果您是应用程序开发人员,您可能会发现自己倾向于GUID。
只是一个简单的问题,为什么不使用sequence
?
这取决于。
希望这有帮助。