explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。简单讲,它的作用就是分析查询性能。
explain关键字的使用方法很简单,就是把它放在select查询语句的前面。
mysql查看是否使用索引,简单的看type类型就可以。如果它是all,那说明这条查询语句遍历了所有的行,并没有使用到索引。
比如:explain select * from company_info where cname like '%小%'
explain select * from company_info where cname like '小%'
1)、type
依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL。
除了all之外,其他的type都可以使用到索引,除了index_merge之外,其他的type只可以用到一个索引。
C:range:索引范围扫描,常见于使用>,<,is null,between ,in ,like等运算符的查询中。
2)、extra
这个列可以显示的信息非常多,有几十种,常用的有
A:using index:查询时不需要回表查询,直接通过索引就可以获取查询的数据。
以上为常见的几种