Mysql trace分析SQL优化器

Mysql trace分析SQL优化器,第1张

explain 可以查看 SQL 执行计划,但是无法知道它为什么做这个决策,如果想确定多种索引方案之间是如何选择的或者排序时选择的是哪种排序模式。从 MySQL 5.6 开始,可以使用 trace 查看优化器如何选择执行计划。通过trace,能够进一步了解为什么优化器选择A执行计划而不是选择B执行计划,或者知道某个排序使用的排序模式,帮助我们更好地理解优化器行为。

分析trace中的执行计划。可以有效分析建的索引为什么没有走。查看优化器如何选择执行计划,获取每个可能的索引选择的代价。

TRACE 字段中整个文本大致分为三个过程。

准备阶段:对应文本中的 join_preparation

优化阶段:对应文本中的 join_optimization

执行阶段:对应文本中的 join_execution

使用时,重点关注优化阶段和执行阶段。

索引字段会作用在查询和排序时,有排序字段时考虑跟查询一块建立组合索引

Geleral log记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来(Mysqld将接收到的语句按照接收的顺序(注意不是执行顺序)写到查询日志文件中。)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7250428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存