最近連續幾天,mysql數據庫會運行中假死,記錄一下排查過程。mysql
一、在數據庫相應緩慢的時候,用client鏈接上去,執行show processlist 命令,sql
查看是哪條語句執行緩慢,或者哪些語句執行緩慢。查詢結果會列出當前正在執行哪些語句,以及執行了多長時間,當前執行狀態等信息。數據庫
二、檢查緩慢語句設計的表和字段,判斷是否表數據量過大,或者查詢條件的字段須要加索引。函數
三、檢查是否有存儲過程或者函數設計到DDL語句,DDL操做會產生metadatalock,建議業務低峯期操做。設計
基本上按照上面三條檢查排除能解決一大部分的常見問題了。日誌
好比,咱們此次是因爲日誌log表數據量過大,超過800W了。致使不少數據統計相關聯查詢語句執行緩慢,按照慣例是須要半年把歷史數據遷移到歷史庫去,避免常常查詢的表數據過大。索引