Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python mysql.connector fetchall()运行速度非常慢_Python_Database_Mysql Connector - Fatal编程技术网

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

python mysql.connector fetchall()运行速度非常慢,python,database,mysql-connector,Python,Database,Mysql Connector,我有一个使用python和mysql.connector的简单sql查询 query = 'SELECT age, score FROM patient' cursor.execute(query) dr = cursor.fetchall() or cursor.fetchone() print(dr) 在phpmyadmin中,此查询非常快(0.003s)。 如果我使用fecthone(),它在Python中也运行得很快。但是,如果使用fetchall(),速度会非常慢。有时需要几分钟,然

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

query = 'SELECT age, score FROM patient'
cursor.execute(query)
dr = cursor.fetchall() or cursor.fetchone()
print(dr)
在phpmyadmin中,此查询非常快(0.003s)。 如果我使用fecthone(),它在Python中也运行得很快。但是,如果使用fetchall(),速度会非常慢。有时需要几分钟,然后打印结果。有时它只是失败和停止

我的数据大约是440000行。我想根据年龄绘制分数,所以我必须读出所有数据。有人能帮我吗

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

获取所有440k条记录的速度可能会很慢

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


顺便说一句:如果您关心数据库性能的话,那就按常规进行。获取一条记录的计划可能与获取所有记录的计划大不相同,如果您的数据库服务于多个并发请求,则它们的优先级可能会不同。所有这些都会显著影响数据延迟。

这不是一个确切的答案,但您是否尝试过
MySQLdb
或类似的方法?谢谢。我没有。也许我应该试试。不可能需要几分钟来查询50万行。。。你正在使用的计算机有多慢?绘制50万行我可以看到有点慢,但不抓取…我还没有尝试绘制。现在就去拿。它在phpmyadmin中运行良好。我正在使用i5 4G获取您的信息感谢您的解决方案。实际上我想先得到所有的数据并做一些分析。这就是我需要所有数据的原因。在屏幕上绘图是我能想到的第一件事。