show variables like 'slow_query%';
show variables like 'long_query_time';
set global slow_query_log = 'on';
set global slow_query_log_file = 'c:/users/desktop';
set global long_query_time = 1;
explain 用於檢視執行計畫的資訊。explain select username from a, b where a.id = b.id;
explain select username from a, b using(id);
table: 表名
type: 連線的型別(效率遞減)
system:從const中查詢的記錄,有且僅有一行滿足條件。或者說查詢的表中只有一條記錄。
const:由主鍵或者唯一鍵作為查詢條件,由於只有一條,查詢的記錄被優化器視為常量
eq-ref:唯一性索引掃瞄。
eg. (b.mid 為 主鍵, a.mid 可能為普通字段) select * from a, b where a.mid = b.mid;
ref:非唯一性索引掃瞄。索引不是主鍵或者唯一索引。
eg. (a表中可能含有多個相同的sid。sid不具有唯一性。) select * from a where a.sid = 10;
fulltext:全文索引,(優先順序高於普通索引)
eg. alter table a add fulltext(username);
select * from a match(username) against('tom', 'selina');
ref_or_null:在ref的基礎上增加對null的檢測
eg. select * from a where a.sid = 10 or sid is null;
coalesce() ifnull() isnull() nullif()
index_merge:索引合併
eg. (username,password都是索引) select * from user where username = 'tom' and password = 'tom1';
unique_subquery
eg. (id是主鍵) select * from a where id in (select id from a where userid = 10);
index_subquery
eg. (username普通索引) select * from a where username in (select username from a where company = "oracle");
range: 檢索給定範圍的索引
eg. select * from a where a.age > 20;
index: 先讀索引,再讀實際的行,結果還是全表掃瞄
eg. select count(*) from a;
all: 全表掃瞄
eg. select * from a;
mysql開啟慢查詢日誌 MySQL慢日誌體系建設
慢查詢日誌是mysql提供的一種日誌記錄,用來記錄在mysql中響應時間超過閾值的sql語句,在很大程度上會影響資料庫整體的效能,是mysql優化的乙個重要方向。在58的雲db平台建設中,慢sql系統作為乙個非常重要功能模組,不僅是dba日常運維使用,我們也希望通過該功能可以協助開發人員更快速定位業...
mysql慢日誌時間 MySQL慢查詢日誌優化
一 慢查詢日誌概念 mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。long query time的預設值為10,意思是執行10s以上的語句。預設情況下,mys...
mysql 慢日誌 MYSQL慢查詢和日誌
一 簡介 開啟慢查詢日誌,可以讓mysql記錄下查詢超過指定時間的語句,通過定位分析效能的瓶頸,才能更好的優化資料庫系統的效能。二 引數說明 slow query log 慢查詢開啟狀態 slow query log file 慢查詢日誌存放的位置 這個目錄需要mysql的執行帳號的可寫許可權,一般...