python - 与 mysql 的连接速度极慢

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

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

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/

相关文章:

python - python中的引用问题

python - NLP - 使用哪种技术对段落标签进行分类?

python - 将 pandas 数据帧行拆分为搜索到的列值到新的数据帧中

python - 将 python float 打印为单精度 float

python - 获取 Python 函数所需的参数

python-3.x - 决策树accuracy_score给出 "ValueError: Found input variables with inconsistent numbers of samples"

php - 带有 COUNT、FROM、WHERE、GROUP BY 的 MYSQL SELECT 跳过返回的第一行

php exec 没有按预期工作

MySQL Select 不在不同的 Where 值上使用索引

python - 使用下面代码中的 "i-=smallest"语句,我打算更改原始数组 arr,但这并没有发生。我该怎么办?