一个表要处理的行数=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.