SQL GUID和自增列做主键的优缺点
来源:互联网 发布:淘宝活动代报 编辑:程序博客网 时间:2024/06/06 06:52
SQL GUID和自增列做主键的优缺点
我们公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键。所以呢,这里总结一下,将两种数据类型做主键进行一个比较。
使用INT做主键的优点:
1、需要很小的数据存储空间,仅仅需要4 byte 。
2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。
3、index和Join 操作,int的性能最好。
4、容易记忆。
5、支持通过函数获取最新的值,如:Scope_Indentity() 。
使用INT做主键的缺点
1、如果经常有合并表的操作,就可能会出现主键重复的情况。
2、使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。
(Int 4B,存储-2^31~2^31-1范围的整数;2147483647 / 1000 / 365 = 5883.516841095890410958904109589
差不多可以用 6000年,就算10000条记录,也可以用 500多年)
3、很难处理分布式存储的数据表。
使用GUID做主键的优点:
1、它是独一无二的。
2、出现重复的机会少。
3、适合大量数据中的插入和更新操作。
4、跨服务器数据合并非常方便。
使用GUID做主键的缺点:
1、存储空间大(16 byte),因此它将会占用更多的磁盘大小。
2、很难记忆。join操作性能比int要低。
3、没有内置的函数获取最新产生的guid主键。
4、GUID做主键将会添加到表上的所以其他索引中,因此会降低性能。
总结:
上面列出了GUID和INT两种数据类型做主键优缺点。我觉得,对于大数据量,建议使用guid做主键。而使用int会得到最佳的性能。
阅读全文
0 0
- SQL GUID和自增列做主键的优缺点
- SQL GUID和自增列做主键的优缺点
- 自增主键和GUID主键
- 自增主键的优缺点
- 关于UUID和GUID,教你如何使用JDK自带的UUID生成主键。
- 问题2:Inodb自增主键和业务主键优缺点
- 自增量字段与GUID字段作为主键的区别
- 自增量字段与Guid字段主键的性能对比
- SQL中自增量字段Int型 identity(1,1)与Guid作为主键的性能比较
- Sql Sever用GUID值做数据的主键标识
- SQL 关于主键和自增长标识列的修改
- 数据库主键UUID,GUID和自己写的工具类
- ORACLE的GUID主键生成
- 据库中使用自增量字段与Guid字段主键的性能对比
- 数据库中使用自增量字段与Guid字段主键的性能对比
- 据库中使用自增量字段与Guid字段主键的性能对比
- 数据库中使用自增量字段与Guid字段作主键的性能对比
- 自增主键的sql设置语句
- CSS3学习笔记
- linux tar压缩解压命令
- window下Jekyll建站过程
- php 使用composer phpmailer发送qq邮件
- HTML5学习笔记之canvas
- SQL GUID和自增列做主键的优缺点
- HTML5学习笔记
- Tensorflow 实战--黄文坚 高清完整PDF及python代码
- SL代码生成配置
- 为什么canvas宽高要设置在标签内>>宽高设置在style和设置在canvas的区别
- python 中对配置文件的解析 ConfigParser & ConfigObj
- 关于beginPath()和closePath()的关系>>canvas的beginPath和closePath分析总结,包括多段弧的情况
- angular2入门简介
- canvas中strokeRect的渲染问题>>strokeRect把一像素的边框渲染成两像素