为什么要用自增ID做主键

 时间:2024-10-17 19:32:37

1、MySQL表设计规范要求少用唯一键,必须有自增整形主键,一般该字段没有业务意义(sharding程序自己控制自增值例外)。

为什么要用自增ID做主键

2、MySQL InnoDB为索引组织表,即使你不设置主键它也会维护一个隐藏主键。所有隐藏主键共享一个自增锁。如果很多表没定义主键,就会成为瓶颈。

为什么要用自增ID做主键

3、隐诏潞逾乐藏主键为一个6字节的整型,可能存在被写完而不被察觉的风险。很多工具一定要求表明确定义主键,如online ddl(不锁表加索引、字段等表变更)。工具不可用会让日常维护变得复杂。

为什么要用自增ID做主键

4、没有设置主键MySQL可能用表上面的唯一索引作为主键,如果这个唯一索引很长,性能将特别差。

为什么要用自增ID做主键

5、索引组织表类似英文字典,每个词按照字母组织的(a-z),越短的单词越容易被查到;MySQL InnoDB所有的二级索引(普通索引)都包含主键,主键越长二级索引越大。

为什么要用自增ID做主键

6、添加单词要加在字典已有单词中间,相类似,可能引发数据页的分页操作。但如果一直是追加就不会分页,性能更加可控。

为什么要用自增ID做主键

7、自增ID可以用来做分页优化。如下语句性能相差1000倍:1. Select * from tbl limit 10000000,30;2. Select * from tbl where id>10000000 limit 30;

为什么要用自增ID做主键
  • 太舞小镇攻略
  • 灯饰加盟被骗后怎么办
  • 齐肩发扎马尾效
  • 红薯面疙瘩汤怎么做
  • 如何选购手表
  • 热门搜索
    民族精神手抄报 建队节手抄报 美丽的家乡手抄报 手抄报的装饰花边 爱国诚信友善手抄报 数学乐园手抄报 水浒传手抄报图片大全 电子手抄报模板 法制手抄报的内容 中秋节手抄报花边