發現mysql服務器CPU佔用率較高,並且從服務器上數據滯後主服務器很長時間。mysql
從slow log文件中找到這樣一條sql語句。sql
這個sql語句query_time達到了48.8秒,一個根據主鍵去更新的update語句竟然耗時這麼長。服務器
查看執行計劃,發現語句沒法使用索引。索引
檢查後發現主鍵_id字段是varchar類型,而語句中是long類型,發生了隱式類型轉換,致使該語句沒法使用主鍵索引,而必須走全表掃描(rows_examined:853805)的時候,全表掃描時是有表鎖的(lock_time:46.41)。部署
在找到這個sql的來源,並修改爲傳遞varchar類型後,再看執行計劃,已經能夠使用主鍵索引。date
部署到主站後發現服務器CPU使用率降低,從服務器的數據滯後時長也變成了0秒。sql語句
數據類型隱式轉換的小問題也能形成很大的影響。數據類型