mysql Tracing the Optimizer

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql Tracing the Optimizer相关的知识,希望对你有一定的参考价值。

背景:
做为一个DBA,或者从事数据库相关工作的小伙伴,常见的工作就是优化sql,查看执行计划!但有时优化器给出的执行计划是错误或者不是最优的, 这时我们就要去追踪一下优化执行计划生成的过程。mysql 5.6提供了Tracing the Optimizer 功能这可是优化sql的一大神器

一,开启Tracing the Optimizer

set optimizer_trace_max_mem_size=300000;
set end_markers_in_json=true;
SET optimizer_trace="enabled=on";

二,生成sql 跟踪信息
explain select * from test.t1;

SELECT * FROM information_schema.optimizer_trace; --备注:这个视图就有我们想要信息,内容如下:

技术分享图片

三,举例:
比如说sql 会因为Limit 不同的值,执行计划会不一样:

技术分享图片

四,结总:
这里面的内容非常多,我在这只是抛砖引玉,大家可以自己去深入了角

==========================================================================
官网地址:https://dev.mysql.com/doc/internals/en/tracing-example.html

以上是关于mysql Tracing the Optimizer的主要内容,如果未能解决你的问题,请参考以下文章

Ray Tracing The Next Week 超详解 光线追踪2-6 Cornell box

Ray Tracing The Next Week 超详解 光线追踪2-4

Ray Tracing The Next Week 超详解 光线追踪2-3

RAY TRACING THE REST OF YOUR LIFE 超详解 光线追踪 3-1

RAY TRACING THE REST OF YOUR LIFE 超详解 光线追踪 3-6 直接光源采样

没有Unity_光追2008年的书 Ray Tracing From The Ground Up 目录翻译