我正在使用与localhost数据库的非常简单的连接:
engine = sqlalchemy.create_engine('mysql+mysqlconnector://usr:pwd@localhost/db')
engine = engine.connect()
data = engine.execute('select * from table')
'table'有500行。然后我在'data'上运行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 :(得分:0)
似乎一切都好。错误报告描述的recv调用需要0.02秒,而你的调用是1/10。在我看来,这是相当不错的。花费这么长时间的原因是你拨打了54086个电话(每行108个电话)。我建议你重写查询,以便减少调用次数。问你想要什么样的数据库。