2016-03-06 69 views
0

我有一個網頁加載速度很慢,所以我安裝了Django Debug Toolbar。我在這方面很新,所以我想弄清楚我可以用它做什麼。Django調試工具欄目標?

我可以看到數據庫在205毫秒內完成了264個查詢。看起來很高。我敢肯定,我可以通過添加一些索引和只寫更好的查詢來減少這一點。但我的問題是:應該嘗試在這裏打出什麼樣的「好」數字?通常所認爲的「足夠快」和進一步優化並不值得。 50ms的? 20ms的?

同樣在同一頁上它顯示用戶CPU中的2500ms。這對我來說聽起來很糟糕,我很驚訝它比數據庫高得多,我認爲這是瓶頸。這可能表明我試圖在python代碼中做太多而不是在數據庫層?減少SQL查詢的數量有助於CPU嗎? (等待查詢?)。再次是有一些衆所周知的目標響應時間,我應該瞄準。

我正在尋找來自我的客戶的快速響應。現在,當我點擊時,我可以在加載頁面之前感覺到「懷孕的暫停」。

+0

我不確定開發者服務器是最好的放置速度的地方。 SQL查詢可能會指導您創建更好的查詢。設置另一臺服務器(nginx/gunicorn)並查看時序是否沒有改進 –

回答

1

默認情況下,訪問相關模型字段會導致每行每個模型一個額外的查詢。看看select_related()prefetch_related(),這通常會減少查詢次數,並加快速度。我認爲調試工具欄會顯示實際查詢,如果沒有,則需要在執行任何查詢優化之前啓用sql日誌。一旦你將查詢數量減少到最低限度(每個pow沒有額外的查詢),查找最慢的查詢並使用EXPLAIN sql語法來查看是否正在使用索引,這是另一個可能變慢的領域,尤其是對於大數據。

通常數據庫是瓶頸,除非您在代碼中執行一些主要循環。如果您認爲python代碼很慢,那麼需要對它進行配置,否則它只是猜測。