gpt4 book ai didi

python mysql.connector fetchall() 运行速度极慢

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:40 25 4
gpt4 key购买 nike

我有一个使用 python 和 mysql.connector 的简单 sql 查询

query = 'SELECT age, score FROM patient'
cursor.execute(query)
dr = cursor.fetchall() or cursor.fetchone()
print(dr)

在 phpmyadmin 中,这个查询非常快(0.003 秒)。如果我使用 fecthone(),它在 Python 中也运行得很快。但是,如果我使用 fetchall(),它会变得非常慢。有时需要几分钟并打印结果。有时它只是失败并停止。

我的数据大约是 440,000 行。我想实际绘制分数与年龄的关系,所以我必须读出所有数据。有人可以帮助我吗?

ps:如果我去掉 fetchall()、fetchone() 和 print,它运行得非常快。但是,如何获取我的数据并绘制它呢?

最佳答案

获取所有 440k 条记录确实很慢。

如果要画图,一般不需要440k点;您的屏幕可能只有 2000 到 4000 像素宽,小 100-200 倍。您可以显示部分绘图,仅获取相关部分数据,或者您可以预先计算缩小版本(IIRC MySQL 不支持 native 表采样)。

附带说明:如果您完全关心数据库性能,通常会 inspect query plans .获取一条记录的计划可能与获取所有记录的计划截然不同,如果您的数据库服务于许多并发请求,它们可能具有不同的优先级。这都会显着影响数据延迟。

关于python mysql.connector fetchall() 运行速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com