暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
17神兵利器 —— optimizer trace 的神器功效(02).pdf
221
16页
13次
2022-03-14
免费下载
otpimizer trace
标签 MySQL 是怎运⾏
对于MySQL 5.6及之前的版本来说,查询优化器就像是⼀个⿊
⼦⼀样,你只能通EXPLAIN句查看到最后优化器决定使⽤的
⾏计划,却⽆法知道它为什么做这个决策。这对于⼀部分喜欢刨根问
底的⼩伙伴来说简直是灾难就觉得使⽤其他的执⾏⽅案
EXPLAIN输出的这种⽅案强,凭什么优化器做的决定和我想的不
样呢
MySQL 5.6以及之后的版本中,设MySQL的⼤叔贴⼼的为这
分⼩伙伴提出了⼀optimizer trace功能,这个功能可以让
们⽅便的查看优化器⽣成执⾏计划的整个过程,这个功能的开启与关
闭由系统变量optimizer_trace决定,我们看⼀下
mysql> SHOW VARIABLES LIKE 'optimizer_trace';
+-----------------+--------------------------+
| Variable_name | Value |
+-----------------+--------------------------+
| optimizer_trace | enabled=off,one_line=off |
+-----------------+--------------------------+
1 row in set (0.02 sec)
可以看到enabled值为off表明这个功能默认是关闭的
⼩贴⼠:
one_line的值是控制输出格式的,如果为on么所有输出都将在
⼀⾏中展示,不适合⼈阅读,所以我们就保持其默认值off吧。
如果想打开这个功能,必须⾸先enabled值改on,就像这
样:
mysql> SET optimizer_trace="enabled=on";
Query OK, 0 rows affected (0.00 sec)
然后我们就可以输⼊我们想要查看优化过程的查询语句,当该查询语
句执⾏完成后,就可以information_schema据库下的
OPTIMIZER_TRACE表中查看完整的优化过程。
OPTIMIZER_TRACE4个列,分别是
QUERY:表示我们的查询语句
TRACE:表示优化过程的JSON式⽂本。
MISSING_BYTES_BEYOND_MAX_MEM_SIZE由于优化过程
可能会输出很多,如果超过某个限制时,多余的⽂本将不会
显示,这个字段展示了被忽略的⽂本字节数。
INSUFFICIENT_PRIVILEGES表示是否没有权限查看优化
过程,默认值0只有某些特殊情况下才会是1我们暂时
关⼼这个字段的值
完整的使optimizer trace能的步骤总结如下
of 16
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜