2

我正在使用一个非常简单的连接到本地主机数据库:

engine = sqlalchemy.create_engine('mysql+mysqlconnector://usr:pwd@localhost/db')
engine = engine.connect()
data = engine.execute('select * from table')

'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 可以解决。我的问题是,我在哪里设置这个?

4

1 回答 1

0

似乎一切正常。错误报告描述了需要 0.02 秒的 recv 调用,您的调用是该调用的 1/10。这在我看来是完全可以的。需要这么长时间的原因是您拨打了 54086 次电话(每条线路 108 次电话)。我建议您重写查询,以减少调用次数。询问您想要的数据库。

于 2013-01-29T16:49:29.243 回答