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; --備註:這個視圖就有我們想要信息,內容如下:

mysql Tracing the Optimizer

三,舉例:
比如說sql 會因爲Limit 不同的值,執行計劃會不一樣:

mysql Tracing the Optimizer

四,結總:
這裏面的內容非常多,我在這只是拋磚引玉,大家可以自己去深入了角

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章