如何根据Explain执行计划对数据库查询语句进行优化

如何根据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

经验分享 程序员 微信小程序 职场和发展