记得A项目组是一个物流管理系统,后台采用了Oracle数据库。在系统中的核心表托运单表中,关于主键采用何种数据类型,是 sequence 还是用GUID , 大家起了争论。

从网络搜索得到的结论看,一般的意见总结为:
1. SYS_GUID()比sequence复杂;
2.SYS_GUID做主键,则表、索引存储开销多;
3.SYS_GUID索引查询比sequence慢;

小结

从实践来看, 使用SYS_GUID() 做主键的优点多于负面影响。特别是在多个数据库数据集成时,GUID 的优点显而易见.

综上所述,SYS_GUID 做主键:

SYS_GUID 比sequence 复杂:有限范围的正确 :由于SYS_GUID 是RAW 类型的,做主键是,需要使用 RAWTOHEX 或者HEXTORAW 类的函数转换,若直接使用,则需要建立函数索引等。但这种复杂性往往在前端业务系统中体现不出,主键常常作为隐含的唯一ID 去标识对象,而不显示出来(或者不手工操作它,因为它无意义)。

SYS_GUID 做主键存储开销大:不需要评估系统规模:如今存储非常便宜,内存也足够大,如果2 千万条记录增加不到1.5G内存的话,当前普通的服务器已经可以承受,如果进行合理分区,则影响可以降低到极低。当然,如果您的服务器资源很紧张,那恐怕得放弃使用SYS_GUID

SYS_GUID 做主键查询比 sequence 慢 : 不正确:实践证明,二者是一样的。

【摘自:http://spiritfrog.iteye.com/blog/245816(更详细)】

最新文章

  1. angularJS: shop chart
  2. 软件工程总结(Final)
  3. 16_采用SharedPreferences保存用户偏好设置参数
  4. MFC打开文件对话框
  5. vue + vuex 表单处理
  6. eclipse同步远程服务器
  7. HDU 3468 BFS+二分匹配
  8. BestR #31
  9. cat: can't open '/lib/modules/2.6.35.3-571-gcca29a0/modules.dep': No such file or directory
  10. spring boot / cloud (十八) 使用docker快速搭建本地环境
  11. RecyclerView android
  12. 无法删除foo.length
  13. java死锁详解
  14. Servlet_Struts2
  15. 【机器学习】K近邻算法——多分类问题
  16. .Net core,EFCore 入门
  17. 关于myBatis的问题There is no getter for property named 'USER_NAME' in 'class com.bky.model.实例类'
  18. win7电脑遇到端口被占用的情况该如何查看并将其关闭
  19. 关于Jsp中的三种弹框
  20. mysql优化建议21条

热门文章

  1. dos2unix 命令
  2. select下拉框插件(转)
  3. Sprint 2
  4. Java之数组了解
  5. c#解压文件
  6. 1. Two Sum I & II & III
  7. 每个部门绩效成绩第二名 sql server 查询 ( 替代 not in )
  8. Adapter 代码中启动报错
  9. keep the bar green to keep the code clean——Junit详解(二)
  10. C++小项目:directx11图形程序(二):systemclass