MySQL主键
主键使用自增ID还是UUID?能说说原因吗?
自增ID和UUID作为主键的考虑主要有两方面,
一个是性能
另一个就是存储的空间大小,
一般没有特定的业务要求都不推荐使用UUID作为主键。
因为使用UUID作为主键插入并不能保证插入是有序的,有可能会涉及数据的挪动,也有可能触发数据页的分裂,因为一个数据页的大小就是16KB,这样插入数据的成本就会比较高。
而自增ID作为主键的话插入数据都是追加操作,不会有数据的移动以及数据页的分裂,性能会比较好。
另一方面就是存储空间,
自增主键一般整形只要4个字节,长整形才占8字节的大小空间,
而使用UUID作为主键存储空间需要16字节的大小,会占用更多的磁盘,
在二级索引中也会存出一份主键索引,这样多占用消耗的空间就是两倍,性能低,
所以不推荐使用。
自增id是连续的,插入过程也是顺序的,总是插入在最后,减少了页分裂,有效减少数据的移动。
所以尽量不要使用字符串(如:UUID)作为主键。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Michael's Blog!
评论




