简述:
使用 EXPLAIN 或DESC关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的 查询语句 或是 表结构的性能 瓶颈。
通过explain命令可以得到:
1、表的读取顺序
2、表的读取操作的操作类型
3、哪些索引可以使用
4、哪些索引被实际使用
5、表之间的引用
6、每张表有多少行被优化器查询
为什么要使用explain :
explain可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作。
MySQL查询优化器是如何工作的 :
MySQL查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。
最终目标是提交SELECT语句查找数据行,而不是排除数据行。
优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快。
如果能够首先进行最严格的测试,查询就可以执行地更快。
explain局限 :
1、explain不会告诉你关于触发器,存储过程的信息或者用户自定义的函数对查询的影响情况。
2、explain不会考虑cache。
时间: 2024-10-07 03:35:11