Mysql慢查詢語句分析

2021-10-09 11:22:30 字數 1718 閱讀 6128

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...