GUID和INT两种数据类型做主键的比较
2018-01-16 15:29
666 查看
使用INT做主键的优点:
1、需要很小的数据存储空间,仅仅需要4 byte 。
2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。
3、index和Join 操作,int的性能最好。
4、容易记忆。
5、支持通过函数获取最新的值,如:Scope_Indentity() 。
使用INT做主键的缺点
1、如果经常有合并表的操作,就可能会出现主键重复的情况。
2、使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。
3、很难处理分布式存储的数据表。
使用GUID做主键的优点:
1、它是独一无二的。
2、出现重复的机会少。
3、适合大量数据中的插入和更新操作。
4、跨服务器数据合并非常方便。
使用GUID做主键的缺点:
1、存储空间大(16 byte),因此它将会占用更多的磁盘大小。
2、很难记忆。join操作性能比int要低。
3、没有内置的函数获取最新产生的guid主键。
4、GUID做主键将会添加到表上的所以其他索引中,因此会降低性能。
总结:
上面列出了GUID和INT两种数据类型做主键优缺点。我觉得,对于大数据量,建议使用guid做主键。而使用int会得到最佳的性能。
1、需要很小的数据存储空间,仅仅需要4 byte 。
2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。
3、index和Join 操作,int的性能最好。
4、容易记忆。
5、支持通过函数获取最新的值,如:Scope_Indentity() 。
使用INT做主键的缺点
1、如果经常有合并表的操作,就可能会出现主键重复的情况。
2、使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。
3、很难处理分布式存储的数据表。
使用GUID做主键的优点:
1、它是独一无二的。
2、出现重复的机会少。
3、适合大量数据中的插入和更新操作。
4、跨服务器数据合并非常方便。
使用GUID做主键的缺点:
1、存储空间大(16 byte),因此它将会占用更多的磁盘大小。
2、很难记忆。join操作性能比int要低。
3、没有内置的函数获取最新产生的guid主键。
4、GUID做主键将会添加到表上的所以其他索引中,因此会降低性能。
总结:
上面列出了GUID和INT两种数据类型做主键优缺点。我觉得,对于大数据量,建议使用guid做主键。而使用int会得到最佳的性能。
相关文章推荐
- GUID和INT两种数据类型做主键的比较
- GUID和INT两种数据类型做主键的比较
- GUID和INT两种数据类型做主键的比较
- GUID和INT两种数据类型做主键的比较
- GUID和INT两种数据类型做主键的比较
- Guid做主键和int做主键性能比较
- 使用Guid做主键和int做主键性能比较
- 使用Guid做主键和int做主键性能比较
- java中Long类型数据必须转化为int才能正确比较
- java中Long类型数据必须转化为int才能正确比较
- 使用Guid做主键和int做主键性能比较
- int与long 两种数据类型有什么区别?|__int64固定大小为8字节,不受运行环境(的CPU和操作系统位数)影响
- 使用Guid做主键和int做主键性能比较
- Java中的Integer和int等包装类和基本数据类型简单比较
- 主键字段使用不同数据类型的简单比较
- postgresql 数据支持 jsonb/json中 array或int 类型进行的交集比较
- NSNumber与int基本数据类型的比较
- Sql2005下以GUID、INT、VARCHAR类型作主键及无主键时插入表的效率测试
- 转载-两种将int类型的数据转换成byte数组,以及反向转换的代码
- 关于mysql数据表myisam与innode两种类型的比较分析