uuid 作为主键会存在的问题
資深大佬 : ruandao 57
我在看 高性能 mysql
然后,里面提到用 uuid 作为主键会出现插入的性能问题,那么是指 uuid4 吗?
我查看了下 uuid1 好像是时间增序的, 所以应该不会有插入时不是顺序,导致频繁页分裂的问题吧?
我目前的认知是,uuid1 作为主键的话,因为要进索引,会导致性能问题(因为 uuid1 比较长,每个页能容纳的 key 变少了)
有什么缺漏,或者不对的地方吗?
谢谢
大佬有話說 (13)
我在看 高性能 mysql
然后,里面提到用 uuid 作为主键会出现插入的性能问题,那么是指 uuid4 吗?
我查看了下 uuid1 好像是时间增序的, 所以应该不会有插入时不是顺序,导致频繁页分裂的问题吧?
我目前的认知是,uuid1 作为主键的话,因为要进索引,会导致性能问题(因为 uuid1 比较长,每个页能容纳的 key 变少了)
有什么缺漏,或者不对的地方吗?
谢谢
例如,从性能的角度考虑,使用 UUID 来作为聚簇索引则会很糟糕:它使得聚簇索引的插入变得完全随机,这是最坏的情况,使得数据没有任何聚集特性
2.对于非主键的索引,都是非聚簇索引,每个非聚簇索引的叶子节点存储的是主键的具体值(可以规避插入更新中 B+树的调整)。也就是说:如果主键用 UUID,那么其他的索引都变相的变大了几倍,会导致磁盘空间的浪费。
我这边主要的矛盾是书上讲的是 uuid4 吗,因为 uuid1 的序列是有序的