2013-08-19 20 views
0

我在一個網站,肯定會開始看到增長在未來一年的測量增加實現數據庫分析。我在每個頁面上實現查詢分析(使用Zend),並在頁面變得太慢時記錄問題。那時,我會看看我能做些什麼來優化查詢。問題是,沒有與縮放網頁的經驗,我不知道什麼是「太慢」將是查詢特定網頁上。在尋找優化查詢的方法之前,對於給定頁面上的查詢是否有任何可接受的時間限制?憑經驗開始優化頁面的數據庫查詢

感謝,

埃裏克

回答

2

有沒有全球性的 「太慢」。一切都取決於查詢的內容以及您的流量。投入一些時間爲流量發生器編寫場景,並對網站進行負載測試。檢查哪些部件首先破裂,修復並重復。即使簡單的查詢也可能遇到一些病例。

不要忘記將更多假數據加載到數據庫中 - 更多的用戶可能會爲您生成更多數據,並且僅當數據集大於數據庫緩存/緩衝區時纔會啓動一些問題。確保你也指責正確的查詢 - 如果你有鎖定表進行更新的其他事務,其他事務可能需要重試/延遲 - 查看前N個查詢,而不是固定在單個查詢上。

確保您在雙方的疑問顯得太 - 從客戶端和服務器。例如,如果您使用的是mysql,則可以輕鬆記錄所有不使用連接/搜索索引的查詢。您還可以使用percona toolkit(以前Maatkit)搶斷網的流量和分析來代替。您可以使用mysqltunner查看您遇到多少緩存未命中。對於其他數據庫,您可以在別處找到類似的工具。

如果有任何一般規則,我會說 - 如果您的查詢開始以10倍的時間,他們沒有任何其他負載,你有問題。此外,這不是關於查詢 - 這是關於頁面加載時間。找到「頁面生成需要多長時間?」的答案並從那裏出發。 (大概不到一秒鐘,除非你在封面上做大量的數據處理)

+0

謝謝你一個非常徹底的答案! – Eric