explain
可以用来分析 SQL 语句,具体用法如下:
只需在要执行的 SQL 语句前面添加 explain
即可。
各个字段的含义如下:
其中最重要的就是 type 字段,type 值类型如下:
all : 扫描全表数据;
index : 遍历索引;
range: 索引范围查找;
index_subquery : 在子查询中使用 ref;
unique_subquery : 在子查询中使用 eq_ref;
ref_or_null : 对 null 进行索引的优化的 ref;
fulltext :使用全文索引;
ref :使用非唯一索引查找数据;
eq_ref : 在 join 查询中使用主键或唯一索引关联;
const :将一个主键放置到 where 后面作为条件查询, MySQL 优化器就能把这次查询优化转化为一个常量。
由于不同的 MySQL
版本,索引失效策略也有所不同。
大多数索引失效情况都是明确的,有少部分索引失效会因MySQL
的版本不同而有所不同。
因此,我们应该在实践过程中进行研究,具体问题具体分析,如果没有办法准确的判断,可以使用explain
进行验证。