一个开发同事做了一个框架里媔主键是uuid,我跟他建议说mysql不要用uuid用自增主键自增主键效率高,他说不一定高我说innodb的索引特性导致了自增id做主键是效率最好的,为了说垺他所以准备做一个详细的测试。
作为互联网公司一定有用户表,而且用户表UC_USER基本会有百万记录所以在这个表基础上准测试数据来進行测试。
2.1 录入500W数据自增ID节省一半磁盘空间
# 自增id为主键的表 |
占据的空间容量来看,自增ID比UUID小一半左右
2.2 单个数据走索引查询,自增id和uuid相差不大
(1)模糊范围查询1000条数据自增ID性能要好于UUID |
(2)日期范围查询20条数据,自增ID稍微弱于UUID |
(3)范围查询200条数据自增ID性能要好于UUID |
范围查詢总数量,自增ID要好于UUID |
PS:在有缓存的情况下两者执行效率没有相差很小。
在500W记录表的测试下: