2011-12-06 55 views
4

我們只是設置了New Relic進行監控,它表示90%的請求時間花在MySQLdb:connect之間 - 每個請求在一到十秒之間!Django&MySQL - 根據請求連接到數據庫非常慢

Django似乎爲每個請求打開一個新的MySQL連接。我怎樣才能進一步診斷髮生了什麼?是否有任何Django或MySQL設置可以用來更快地連接到MySQL?

注意:由於前端使用數字IP連接到數據庫,因此我排除了DNS。

回答

3

問題是,Django將關閉每個請求的連接並重新初始化它;作爲數據庫代碼偵聽信號:

signals.request_finished.connect(close_connection)django/db/__init__.py

的一個解決方案是實現connection pooling for MySQL using SQLAlchemy這是侵入性最小的和最友好的升級我都看到了。

+0

我沒有試過這個,但你的解決方案似乎是唯一合理的。 –