当前位置:  开发笔记 > 数据库 > 正文

使用uniqueidentifier(GUID)或bigint作为标识列是否更好?

如何解决《使用uniqueidentifier(GUID)或bigint作为标识列是否更好?》经验,为你挑选了2个好方法。

对于SQL服务器,最好是为标识列使用uniqueidentifier(GUID)还是bigint?



1> Joel Coehoor..:

这取决于你在做什么:

如果速度是主要关注点,那么一个普通的老人int可能足够大.

如果你真的有超过20亿(带有B;))记录,那么使用bigint或顺序guid.

如果您需要能够轻松地与远程创建的记录同步,那么Guid真的很棒.

更新
关于Guids的一些其他(不太明显的)注释:

它们可能对索引很难,而且会削弱数据库性能的核心

您可以使用顺序guid来获取某些索引性能,但放弃第二点中使用的一些随机性.

Guids可能很难通过hand(where id='xxx-xxx-xxxxx')进行调试,但是你也可以通过顺序guid(where id='xxx-xxx' + '123')返回一些.

出于同样的原因,Guids可以使基于身份的安全攻击变得更加困难 - 但并非不可能.(您不能只键入'http://example.com?userid=xxxx'并希望获得其他人帐户的结果).


我不认为GUID在连接中会快得多......现代处理器一次处理数字32或64位.

2> Andrew Rolli..:

一般来说,我建议BIGINT超过a GUID(因为guids是大而慢),但问题是,你甚至需要它吗?(即你正在复制吗?)如果你期望不到20亿行,传统的INT将是好的.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有