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

本文探讨了在优快云社区设计中,针对帖子编号采用Guid而非自增Int的原因。通过使用Guid,可以在提交到中间层前就获取到帖子编号,尤其适用于存在中间逻辑处理且可能超时的情况。此外,还提到了使用Guid对于引入队列概念的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直在做下一代优快云社区的设计,在帖子编号到底采用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值