手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

为什么要用自增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做主键
© 手抄报圈