MYSQL常備知識

shmily812發表於2020-11-20

show processlist和show full processlist

processlist命令的輸出結果顯示了有哪些執行緒在執行,不僅可以檢視當前所有的連線數,還可以檢視當前的連線狀態幫助識別出有問題的查詢語句等。

如果是root帳號,能看到所有使用者的當前連線。如果是其他普通帳號,則只能看到自己佔用的連線。show processlist只能列出當前100條。如果想全部列出,可以使用SHOW FULL PROCESSLIST命令

開啟mysql慢查詢日誌

//檢視慢查詢時間
show variables like “long_query_time”;預設10s

//檢視慢查詢配置情況

show status like “%slow_queries%”;
//檢視慢查詢日誌路徑

show variables like “%slow%”;

-slow_query_log 是否記錄慢查詢。用long_query_time變數的值來確定“慢查詢”。

-slow_query_log_file 慢日誌檔案路徑

-long_query_time 慢日誌執行時長(秒),超過設定的時間才會記日誌

Mysql 查詢表死鎖 和結束死鎖的表步驟

  1. 查詢是否鎖表’
    show OPEN TABLES where In_use > 0;

  2. 查詢程式
    show processlist
    查詢到相對應的程式===然後 kill id

補充:

檢視正在鎖的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

檢視等待鎖的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;