🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
比如:就是一个表中一个列和另外一个表中的主键(不一定是主键)有关联 其中标识列 对于完全"随机"的字符串也需要多加注意,例如MD5(),SHA1()或者UUID()产生的字符串 这些函数生成的新值会任意分布在很大的空间内,这会导致INSERT以及一些select语句变得很慢 * 因为插入值会随机的写到索引的不同位置,所以使得insert语句变慢.这会导致页分裂,磁盘随机访问,以及对于聚簇存储引擎产生聚簇索引碎片 * select语句会变得更慢,因为逻辑上相邻的行会分布在磁盘和内存的不同地方 * 随机值导致缓存对所有类型的查询语句效果都很差,因为会使得缓存赖以工作的访问局部性原理失效.如果整个数据集都一样的"热",那么缓存任何一部分特定数据到内存都没有好处,如果工作集比内存大,缓存将会有很多刷新和不命中 如果存储UUID值,则应该移除"-"符号,或者更好的做法是,用UNHEX()函数转换UUID值为16字节的数字,并且存储在一个BINARY(16)列.检索时可以通过HEX()函数来格式化为十六进制格式 UUID()生成的值与加密散列函数例如sha1()生成的值有不同的特征,UUID值虽然分布的也不均匀,但还是有一定顺序的.尽管如此,还不如递增的函数好用