MySQL sql萬花油優化

2022-09-25 14:00:14 字數 641 閱讀 5289

原文:

-- 檢視優化器狀態

show variables like 'optimizer_trace';

-- 會話級別臨時開啟

set session optimizer_trace="enabled=on",end_markers_in_json=on;

-- 設定優化器追蹤的記憶體大小

set optimizer_trace_max_mem_size=1000000;

-- 執行自己的sql

select host,user,plugin from user;

-- information_schema.optimizer_trace表

select trace from information_schema.optimizer_trace;

-- 匯入到乙個命名為xx.trace的檔案,然後用json閱讀器來檢視(如果沒有控制台許可權,或直接交由運維,讓他把該 trace 檔案,輸出給你就行了。 )。

select trace into dumpfile "e:\\test.trace" from information_schema.optimizer_trace;

注意:不設定優化器最大容量的話,可能會導致優化器返回的結果不全。

MYSQL SQL優化流程

常去想想以前的東西,懷舊不是用感傷的,是溫故知新,加油!1 盡量將複雜的sql拆成幾個簡單的查詢 2 盡量使用表連線,減少使用過 in not in 3 儘量減少子查詢的使用或者將其合併出來 4 盡量將 in not in exists not exists變為 join 語句,減少 合併子查詢 1...

MySQL SQL語句優化

檢視表定義 show create table users 檢視表的索引 show index from users 你要獲取第乙個表的所有資訊,你說全表掃瞄快呢還是索引掃瞄快呢?所以當你查詢庫 包括left join中的臨時庫 的所有資訊時,資料庫會選擇最優方法 全表掃瞄!s表dept id na...

Mysql sql查詢優化

1.單個條件未加索引 對應的執行計畫 從查詢計畫中可以看出該查詢全表掃瞄,掃瞄行數 9000多行 2.增加唯一索引之後查詢 查詢時間縮短,然後再看查詢計畫 查詢計畫中,掃瞄行數中只有一行。上面建立的索引是唯一索引,常規索引中查詢計畫的type一般為ref 索引列和非索引列一起查詢,索引仍然會有效 單...