2011-12-06 53 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

我没有试过这个,但你的解决方案似乎是唯一合理的。 –