mysql高级----索引优化(一):索引分析
一、单表
1、表结构
2、案例分析
显示表的索引信息:show index from 表名
重新分析:仍然用了文件排序,因为comments范围查询,会导致索引失效
将where条件改成comments=1后,分析结果如下:相当于给定已知组合索引中的两个列,求未知的另外一个列时,可以用索引求得。
显示表的索引信息:show index from 表名
分析结果:此时排序就不会用到额外的 [文件排序]
二、两张表
1、表结构
2、案例分析(非唯一索引)
2.1左连接
解决方案:添加索引,但问题是,索引建在哪张表的card上呢??我们来试试看
结论
结论:索引建在左表的card上,查询使用的类型为:index,比ref差了许多;且此种情况rows 20,20,也比上一种情况rows 1,20效率更低
2.2 右连接:
未建索引的情况
给左表class.card字段添加上索引(右连接索引加在左表,左连接索引加在右表)
三、三张表
1、表结构
在两张表的基础上添加一张新表phone
2、案例分析
三表左连接
建索引
重新分析