一个表要处理的行数=row(应用索引+where条件后剩下行数)*filtered(条件能过滤的比例)
join_type=eq_ref
如果外层一行只会读取内层一行(匹配内层的唯一索引)
join_type=ref
如果外层一行匹配内层多行
join_type=const
将常理和主键或者唯一键比较
join_type=range
表示扫描索引,
join_type=index
索引扫描
ANALYZE TABLE 执行可以重建索引
Using index
索引覆盖所有信息,不需要回表
Using index condition
:将where条件推入索引扫描,减少回表的次数(对应Index Condition Pushdown Optimization),参考Index Condition Pushdown
Using where
对存储引擎返回的结果过滤,如果存储引擎使用的索引区分度不高, 返回的数据很多,这时可以考虑建立复合索引,将where条件推入存储引擎触发'Using index condition'
order by col limit 10
如果col有索引,那么不用对候选集排序,可以直接从索引开始读取limit 行
Posted in: database
Comments are closed.