2011-01-22 31 views
0

我優化了我的查詢,他們都運行得比0.6秒快。但是,有時他們可能需要2或3秒。MySql,試圖找出我的一些查詢運行速度有時很慢,需要一些證明爲什麼

我正在使用共享服務器,但服務器僅由靜態html網站和我的數據庫使用。我添加了功能,因此如果查詢時間超過0.6秒,我會收到一封電子郵件。我每天得到20到30。該網站每天獲得800次點擊。所以查詢在大多數情況下都可以。

我正在尋找一種方式在PHP中使用MySQL,我可以找出如果我正在運行其他查詢aka如果服務器正忙。

我想在我的PHP添加的東西,所以我可以添加此我慢查詢電子郵件

任何想法?

回答

1
  • 檢查這些查詢的執行計劃,有時確實長着採取講解和看你能不能改寫或添加索引,以加速它們
  • 確保您沖洗測試之間的查詢緩存,否則可能會出現查詢總是2-3秒的情況,只是在您認爲速度更快時才從早期運行中獲得緩存結果。當緩存已滿或對錶進行更新會使緩存的結果無效時,查詢再次變慢。
  • 當您開始收到有關發生緩慢查詢的郵件時,請檢查服務器負載和內存使用情況。當您在一天的某個時間段內收到更多的查詢時,可能會耗盡資源(cpu/memory/disk IO)。

關於你提到的更新:「我想在我的PHP添加的東西,所以我可以將它添加到我的慢查詢電子郵件」:

  • 運行查詢SHOW PROCESSLIST獲得當前正在運行的所有查詢的列表。您可以將這些結果轉儲到您的郵件中。
  • 使用execshell_exec來運行top,uptime和其他系統命令,這些命令可以讓您在緩慢查詢時瞭解服務器的狀態。將輸出保存爲一個字符串並將其添加到您的郵件中。
+0

我在找東西,我可以添加到我的PHP代碼,所以我在電子郵件中得到它,我沒有在確切的時間檢查。 – Jules 2011-01-22 11:23:40

相關問題