我正在使用与本地主机数据库的非常简单的连接:
engine = sqlalchemy.create_engine('mysql+mysqlconnector://usr:pwd@localhost/db')
engine = engine.connect()
data = engine.execute('select * from table')
“表格”有 500 行。然后我在“数据”上运行 cProfiler,我在其中找到了这个:
ncalls tottime percall cumtime percall filename:lineno(function)
54086 127.261 0.002 127.261 0.002 {method 'recv' of '_socket.socket' objects}
在这里http://bugs.python.org/issue3766看来把TCP_NODELAY设置为1就可以解决了。我的问题是,我在哪里设置这个?
最佳答案
看来一切正常。错误报告描述了需要 0.02 秒的 recv 调用,你的是它的 1/10。我认为这很好。花费这么长时间的原因是您进行了 54086 次调用(每行 108 次调用)。我建议您重写查询,以便减少调用次数。询问您对数据库的需求。
关于python - 与 mysql 的连接速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587323/