我们只是设置了New Relic进行监控,它说我们90%的请求时间花费在MySQLdb:connect
- 每个请求一到十秒!
Django似乎为每个请求打开一个新的MySQL连接。我怎样才能进一步诊断出现了什么?是否可以使用任何Django或MySQL设置来更快地连接到MySQL?
注意:由于前端使用数字IP连接到数据库,因此我排除了DNS。
答案 0 :(得分:3)
问题是django会在每个请求时关闭连接并重新初始化它;因为db代码侦听信号:
signals.request_finished.connect(close_connection)
中的 django/db/__init__.py
一个解决方案是实施connection pooling for MySQL using SQLAlchemy,这是我见过的最不具侵扰性和最升级的升级。