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
- Guid 和 Int 作为系统编号的取舍
- Guid 和 Int 作为系统编号的取舍
- 数据库 GUID vs INT 作为主键的性能辨析
- Enumeration和Iterator的取舍
- SQL中自增量字段Int型 identity(1,1)与Guid作为主键的性能比较
- 有效的使用和设计COM智能指针——条款15:以原则中的优先级作为取舍的依据
- 使用GUID作为数据表主键的好处
- 使用GUID作为数据表主键的好处
- 使用GUID作为数据表主键的好处
- 使用GUID作为数据表主键的好处
- Guid.NewGuid() 和 new Guid()的区别
- 机房收费系统(个人版)——实体和表的取舍
- 如何生成一个新的GUID 全球统一唯一编号
- 关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵
- GUID和INT两种数据类型做主键的比较
- GUID和INT两种数据类型做主键的比较
- 【警惕】const和readonly的取舍
- flex中remoteObject和httpservice的取舍
- 廉价航空公司
- 有关服务器知识详细介绍
- 一个有趣的现象
- 把网页中图片的Alt提示去掉的实现方法
- 网络资料的备份与恢复
- Guid 和 Int 作为系统编号的取舍
- C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
- VS 2005 编码问题引起乱码的解决方法
- 思科路由器配置命令
- SQL语句学习(不断更新中。。。。。。)
- 路由器常用ACL和一些简单防护
- Velocity-模板生成器
- Cisco路由器防火墙配置模板
- 华为JAVA笔试题