2011-08-14 18 views

回答

1

你可以在MySQL允許慢速查詢的記錄:

慢速查詢日誌由該時間超過long_query_time秒來執行所有SQL語句(作爲MySQL 5.1.21)至少需要檢查min_examined_row_limit行。獲取初始表鎖的時間不計爲執行時間。 mysqld在執行完所有鎖之後,將一條語句寫入慢速查詢日誌,因此日誌順序可能與執行順序不同。的long_query_time的默認值是10

0

這是一個大問題,我只能建議了幾個三分球 - 但我相信有良好的覆蓋對象別處SO

首先剖析數據庫查詢。每個RDBMS包含一個長時間運行的查詢列表MySql用一個配置標誌打開。這將捕獲長時間運行的查詢(這可能是現代RDBMS很長時間的秒數)。
另外,每個RDBMS都會返回一個執行它的記錄集的時間。我強烈建議你通過一個常見的函數,稱爲「執行查詢」,將所有調用拉到DNase,然後將SQL執行並將執行時間拖入文件中以備後用。

一般來說,慢查詢來自於糟糕的表設計和缺乏好的索引。針對任何令您擔心的查詢運行「解釋」 - dbae會告訴您它將如何運行該查詢 - 任何「表掃描」都表明RDBMS無法在滿足查詢需求的表上找到索引

下一個性能分析是項最常用的看到在執行該for循環使用所有的時間程序即部分花費的時間,或花費的時間establinsing一個數據庫連接

你似乎要的是性能測試

0

剛在執行每個查詢之前/之後讀取時間。如果使用任何數據庫抽象類/函數,這很容易。