如何根据Explain执行计划对数据库查询语句进行优化
官网地址
Mysql官网地址:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html
如下图:
执行计划输出的列
执行计划中的type列
type列的值有很多,如下图:
首先来说一下效率最低的type值ALL
如果是All的话,那么在数据库表进行查询的时候,会对全表进行查询,会查询表里面的全部的数据,如下图:
All可以优化到Range提升效率
如果我们的执行计划中的type的值是All,那么它会查询全表数据,它的执行效率其实是很低的,那么我们就需要优化它的效率,可以怎么优化呢?我们可以通过加一个索引的方式,从而优化查询效率到Range。如下图:
type的值等于Const
const的效率非常的高,因为它最多只会匹配到一行,它也必须要用到索引,然后筛选索引等于某个值的情况,索引也可以当成主键,一个表中最多有一个值。所以,我们const最多只能查询出来一行数据,查询到此处之后,后续的数据就不再查询了,如下图:
type的值为eq_ref和ref