1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Update MySQL Index.md

This commit is contained in:
shuang.kou 2020-05-08 23:21:45 +08:00
parent 08ef860eba
commit 39df8c9824

View File

@ -28,9 +28,11 @@
7. 在使用InnoDB时使用与业务无关的自增主键作为主键即使用逻辑主键而不要使用业务主键。
8. ~~将打算加索引的列设置为 NOT NULL ,否则将导致引擎放弃使用索引而进行全表扫描。~~
8. ~~将打算加索引的列设置为 NOT NULL ,否则将导致引擎放弃使用索引而进行全表扫描。~~
订正,来自[issue758](https://github.com/Snailclimb/JavaGuide/issues/758) 。**将某一列设置为default nullwhere 是可以走索引,另外索引列是否设置 null 是不影响性能的。**《高性能MySQL》第四章是这样说的And, in case youre wondering, allowing NULL values in the index really doesnt impact performance 。NULL 值的索引查找流程参考https://juejin.im/post/5d5defc2518825591523a1db
订正,来自[issue758](https://github.com/Snailclimb/JavaGuide/issues/758) 。**将某一列设置为default nullwhere 是可以走索引,另外索引列是否设置 null 是不影响性能的。** 但是还是不建议列上允许为空。最好限制not null因为null需要更多的存储空间并且null值无法参与某些运算。
《高性能MySQL》第四章如是说And, in case youre wondering, allowing NULL values in the index really doesnt impact performance 。NULL 值的索引查找流程参考https://juejin.im/post/5d5defc2518825591523a1db ,相关阅读:[MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!](https://juejin.im/post/5d5defc2518825591523a1db) 。
9. 删除长期未使用的索引,不用的索引的存在会造成不必要的性能损耗 MySQL 5.7 可以通过查询 sys 库的 chema_unused_indexes 视图来查询哪些索引从未被使用