MySQL 索引学习漫画.md

给开发童鞋的索引学习漫画



































1、MySQL 以主键值构造一棵树,叶子节点存放着该主键值对应的的整行数据。此为聚簇索引。

2、其他的索引为辅助索引,叶子节点存放着索引字段的值及对应的主键值。

3、一般情况下,单表查询每次只能用一条索引

4、where 条件字段的顺序与索引顺序无关,MySQL 优化器会自动调整顺序。

5、对查询 where 条件中区分度高的字段加索引。

6、通过索引扫描的行数超过全表 30% 时,变全表扫描。

7、联合索引,叶子节点存储的顺序以创建时指定的顺序为准,因此区分度高字段的放左边,能被多个查询复用到的放左边。

8、只 select 需要用到的字段,避免 select * 。

9、如有必要,可使用 USE/FORCE/IGNORE INDEX 强制索引 。

10、多表 join ,先按各表的查询条件比较哪个开销小,从小表取出所有符合条件的,到大表循环查找。

11、以下情况无法使用到索引:
like通配符在最左如:like '%dd', not in , != , <> ,对列做函数运算,隐式数据类型转换, or 子句。

对不确定执行计划的关键语句 select/update/delete ,上线前都务必进行 explain
,查看索引是否合适哟~

你可能感兴趣的:(MySQL 索引学习漫画.md)