mysql执行计划(explain)

11月 29, 2021 |

一个表要处理的行数=row(应用索引+where条件后剩下行数)*filtered(条件能过滤的比例)

join_type

join_type=eq_ref 如果外层一行只会读取内层一行(匹配内层的唯一索引)
join_type=ref 如果外层一行匹配内层多行
join_type=const 将常理和主键或者唯一键比较
join_type=range 表示扫描索引,
join_type=index 索引扫描

ANALYZE TABLE 执行可以重建索引

extra

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.