2010-09-16 75 views
1

如何記錄執行所有查詢,MYSQL查詢執行多少秒以提高數據庫性能? 我正在使用PHP性能調整MYSQL數據庫

+1

也許你要檢查哪個查詢是最慢的嘗試MySQL的慢查詢日誌,啓用此使用 mysqld的--log慢查詢[=文件名] 它將記錄上的文件慢查詢 – 2010-09-16 09:12:27

+1

創建包裝函數來處理所有查詢,這樣你可以將每個時間都保存到一個日誌中。 – 2010-09-16 09:13:46

+0

讓我爲你做一個搜索:http://stackoverflow.com/search?tab=votes&q=[mysql]%20performance – fabrik 2010-09-16 09:29:01

回答

1

Use the slow query log用於捕獲運行時間超過指定時間限制(缺省情況下爲2秒)的查詢。這會告訴你最壞的罪犯;可能很多都是低垂的果實,可以通過適當的指標進行固定。

它不會捕獲不同類型的代碼異味:在緊密循環中多次運行的相對較快的查詢。

如果您願意,您可以將慢速查詢限制設置爲0,它將記錄全部查詢 - 請注意,這本身會降低服務器的速度。

+0

我在控制檯中運行了上述命令並執行了我的應用程序frm瀏覽器,但沒有任何記錄:(怎麼辦? – 2010-09-16 12:11:43

+0

@Ashwin:更好的選擇是更改MySQL配置文件中的設置。緩慢的查詢被記錄下來,這意味着你沒有任何查詢的運行時間超過指定的時間 - 你真的*有*可測量的性能問題嗎?正如我所說的,你可以在你的配置中將慢速查詢限制設置爲0,但這個數量的記錄可能會減慢服務器的速度 – Piskvor 2010-09-16 12:17:10

+0

是的,沒有記錄任何東西,但是當我給出了日誌查詢 - 不使用索引 – 2010-09-16 13:03:52