与mysql连接速度极慢

时间:2013-01-29 16:19:18

标签: python mysql python-3.x sqlalchemy mysql-connector

我正在使用与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.我的问题是,我在哪里设置它?

1 个答案:

答案 0 :(得分:0)

似乎一切都好。错误报告描述的recv调用需要0.02秒,而你的调用是1/10。在我看来,这是相当不错的。花费这么长时间的原因是你拨打了54086个电话(每行108个电话)。我建议你重写查询,以便减少调用次数。问你想要什么样的数据库。