uuid-不好之处
2014-08-26 17:20
113 查看
数据库中直接存储UUID的坏处:
完全‘随机’的字符串,例如由MD5()、SHA1()、UUID()产生的。它们产生的每一个新值都会被任意地保存在很大的空间范围内,
这会减慢INSERT及一些SELECT查询。
1)它们会减慢INSERT查询,因为插入的值会被随机地放入索引中。这会导致分页、随机磁盘访问及聚集存储引擎上的聚集索引碎片。
2)它们会减慢SELECT查询,因为逻辑上相邻的行会分布在磁盘和内存中的各个地方。
3)随机值导致缓存对所有类型的查询性能都很差,因为它们会使缓存赖以工作的访问局部性失效。如果整个数据集都变得同样"热"的时候,
那么把特定部分的数据缓存到内存中就没有任何的优势了。并且如果工作集不能被装入内存中,缓存就会进行很多刷写的工作,并且会导致很多缓存未命中。
如果保存UUID值,就应该移除其中的短横线,更好的办法是使用UHEX()把UUID值转化为16字节的数字,并把它保存在BINARY(16)列中。
完全‘随机’的字符串,例如由MD5()、SHA1()、UUID()产生的。它们产生的每一个新值都会被任意地保存在很大的空间范围内,
这会减慢INSERT及一些SELECT查询。
1)它们会减慢INSERT查询,因为插入的值会被随机地放入索引中。这会导致分页、随机磁盘访问及聚集存储引擎上的聚集索引碎片。
2)它们会减慢SELECT查询,因为逻辑上相邻的行会分布在磁盘和内存中的各个地方。
3)随机值导致缓存对所有类型的查询性能都很差,因为它们会使缓存赖以工作的访问局部性失效。如果整个数据集都变得同样"热"的时候,
那么把特定部分的数据缓存到内存中就没有任何的优势了。并且如果工作集不能被装入内存中,缓存就会进行很多刷写的工作,并且会导致很多缓存未命中。
如果保存UUID值,就应该移除其中的短横线,更好的办法是使用UHEX()把UUID值转化为16字节的数字,并把它保存在BINARY(16)列中。
相关文章推荐
- UUID做主键,好还是不好?这是个问题
- UUID做主键,好还是不好?这是个问题。
- UUID做主键,好还是不好?这是个问题
- UUID做主键,好还是不好?这是个问题。
- 【转载】UUID做主键,好还是不好?这是个问题。
- UUID做主键,好还是不好?这是个问题。
- UUID做主键,好还是不好?这是个问题。
- UUID做主键,好还是不好?这是个问题
- JAVA生成UUID
- 【BLE】CC2541 imageA GATT添加自定义UUID实例
- linux小知识之查看uuid
- ORACLE procedure 生成uuid主键
- 10月英语--是做的不好!!
- Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values;
- UUID 中字符串范围 Type of Character generated by UUID
- 手机蓝牙各类服务对应的UUID
- Android与IOS的UUID的区别
- freeswitch结构之switch_uuid_t
- 没时间?距离远?房源不好白折腾?买房、卖房不用这么难!
- Solr4.0 如何配置使用UUID自动生成id值