Guid 和 Int 作为系统编号的取舍

来源:互联网 发布:淘宝 国际版 编辑:程序博客网 时间:2024/05/16 13:52

最近一直在做下一代CSDN社区的设计,在帖子编号到底采用Guid,还是自增Int选择的时候,花费了不少心思。

最后的确定的方案是采用Guid。

原因如下:

Guid 虽然在搜索、索引寻找的时候,速度肯定比不上Int型字段。

但是,如果帖子编号采用Guid,在提交到中间层之前,就可以知道要增加的这个帖子编号是那个。

而如果使用自增Int,如果中间层的应用逻辑需要在增加到数据库之前执行,那么我要做多少费时的操作才可以知道要新增的这个帖子编号是多少。如果这个中间过程比较费时,完了,肯定超时。

在大数据量下,使用Guid的上述好处体现的非常明显。
使用Guid,中间层可以引入队列的概念,表现层只要简单的向中间层待处理队列中增加一条,既可以返回了。而不用等中间层和数据库层处理完毕。

微软的BizTalk 中表示编号的是Guid,而不是Int,这就是其中一个原因。同时很多大型系统,也是使用的Guid而不是Int。 当然,你也可以使用一套自己的编号方式。不过Guid和Int是最简单的而已。

Guid 类型字段跟Int类型字段速度对比数据,可以参看以下Blog:

http://www.cnblogs.com/zhenyulu/archive/2004/07/20/25816.html

原创粉丝点击