Nic Lin's Blog

喜歡在地上滾的工程師

為什麼 Query 忽快忽慢

如果是相同的語句執行時間不一樣,那就是有其他的會話在搶佔資源

這幾天在解決效能瓶頸時,用 New Relic 去監控 Slow query 時發現,在某個頁面會有偶發性的發生 Slow Query, 一開始我以為是這個 query 本身的問題,還猜想說是訪問量較大出現的不穩定現象。

後來研究一下,發現真正的原因是因為有 worker 每五分鐘會執行一個任務,這個任務裡面有一條 query 一卡就是 10 秒鐘,甚至會連續執行兩次也就是 20 秒。

把這個 Slow query 用 index 解掉之後,發現原本的頁面偶發性出現的慢查詢也不存在了。

才忽然發現,原來是其他會話在搶資源,所以導致明明同一個查詢語句,卻有忽快忽慢的現象。

參考資源

comments powered by Disqus