1.show full processlist
解釋:
id :連線id,可以使用kill+連線id的方式關閉連線
user:當前使用者
host:當前連線客戶端
db:連線的資料庫
command:顯示當前連線的當前執行的狀態,sleep、query、connect
time:持續時間
state:sql語句的執行狀態,copying to tmp table、sorting result、sending data等
info:sql語句,持續時間過長,則需要優化
2.慢日誌查詢
記錄響應時間超過設定閾值(long_query_time)的sql語句,預設未開啟;
slow_query_log:是否開啟 on/off
long_query_time:設定閾值
slow_query_log_file:慢查詢日誌檔案儲存路徑
log_queries_not_using_indexes:記錄沒有使用索引的語句,on/off
log_output:日誌儲存方式,table(通過 select * from mysql.slow_log 查詢) 和 file
show variables like 『%_query%』 查詢
3.explain分析sql語句
id:執行順序,id相同,自上而下執行,id越大,執行優先順序越高
select_type:查詢型別
******:簡單查詢
primary:子查詢中最外層查詢
union:union中的第二個或後面的select語句
dependent: union(union中的第二個或後面的select語句,取決於外面的查詢)
union result:(union的結果,union語句中第二個select開始後面所有select)
subquery:(子查詢中的第乙個select,結果不依賴於外部查詢)
dependent subquery :(子查詢中的第乙個select,依賴於外部查詢)
derived:(派生表的select, from子句的子查詢)
table:表名或負責查詢的臨時表名
type:檢索方式
system:表只有一行記錄
const:通過索引查詢並且一次性找到
eq_ref:唯一性索引掃瞄
ref:非唯一行索引掃瞄
range:按範圍查詢
index:遍歷索引樹
all:全表掃瞄
possible_keys:可能用到的索引
key:實際使用的索引
key_len:索引長度,越短越好
ref:列與索引的比較,連線匹配條件,哪些列或常量被用於查詢索引列上的值
rows:查詢的結果記錄條數
extra:sql查詢的詳細資訊
using where:表示使用where條件過濾
using temporary:使用了臨時表暫存結果
using filesort:說明mysql對資料使用乙個外部索引排序。未按照表內的索引順序進行讀取。
using index:表示select語句中使用了覆蓋索引,直接從索引中取值
using join buffer:使用了連線快取
using index condition:表示查詢的列有非索引的列
mysql 慢查詢分析
轉自花開的地方 mysql有乙個功能就是可以log下來執行的比較慢的sql語句,預設是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在mysql啟動 的時候加入一些引數。如果在my.cnf裡面修改,需增加如下幾行 long query time 1 log slow queries lo...
mysql 慢查詢分析
mysql有乙個功能就是可以log下來執行的比較慢的sql語句,預設是沒有這個log的,為了開啟這個功能,要修改my.cnf或者在mysql啟動 的時候加入一些引數。如果在my.cnf裡面修改,需增加如下幾行 long query time 1 log slow queries log querie...
Mysql 慢查詢 分析
it運維專家網 自由平等,互助分享!mysql有乙個功能就是可以log 下來執行的比較慢的sql 語句,預設是沒有這個log 的,為了開啟這個功能,要修改my.cnf 或者在mysql 啟動的時候加入一些引數。如果在my.cnf 裡面修改,需增加如下幾行 long query time 10 log...