explain优化sql
方法: explain 后跟select 语句。根据查询的结果中字段的值判断sql的好坏。 例如: explain select * from test; 结果如下:
我们主要关注4个参数: type、key、rows、extra
关注1:type
表示mysql在表中找到所需行的方式,又称“访问类型,常见类型如下:
由左到右依次为 由最差到最好,如图:
一般来说要能达到range级别,最好能达到ref级别,否则就可能存在性能问题。
关注2: key
显示mysql在查询中实际使用的索引,没有则显示null
关注3: rows
表示mysql根据表统计信息以及索引选用情况,估算找到所需记录要读取的行数
关注4:extra
如果是only index, 这意味着信息用索引树中的信息检索出的,这比扫描整个表快。
如果是where used ,就是了where限制。
如果是impossible where 表示用不着where ,一般就是没查出来啥。
如果此信息显示Using fileesort或者 Using temporary的话会很吃力,where和order by的索引经常无法兼顾,如果按照where来确定索引,那么order by时就会引起Using fileesort ,这就要看先过滤再排序,还是先排序再过滤了。
本文出自 “屌丝逆袭” 博客,请务必保留此出处http://5731674.blog.51cto.com/5721674/1704005
原文:http://5731674.blog.51cto.com/5721674/1704005