Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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 Peewee ORM:如何有效地迭代大型结果集_Python_Peewee - Fatal编程技术网

Python Peewee ORM:如何有效地迭代大型结果集

Python Peewee ORM:如何有效地迭代大型结果集,python,peewee,Python,Peewee,我希望我的程序在从MySQL服务器接收到行后立即开始处理这些行(行多,连接速度慢) 方法:MyModel.select().iterator() 然而,在迭代器产生其第一个结果(在另一个终端中用tcpdump验证)之前,似乎DB服务器首先发送所有数据 我尝试用原始数据库驱动程序MySQLdb和pymysql来实现这一点,但结果似乎也得到了缓冲 有可能吗?其他Peewee开发人员如何处理大型数据集上的迭代?Willem,对于这个问题,Postgresql提供了Peewee支持的命名游标(或服务器端

我希望我的程序在从MySQL服务器接收到行后立即开始处理这些行(行多,连接速度慢)

方法:
MyModel.select().iterator()

然而,在迭代器产生其第一个结果(在另一个终端中用tcpdump验证)之前,似乎DB服务器首先发送所有数据

我尝试用原始数据库驱动程序
MySQLdb
pymysql
来实现这一点,但结果似乎也得到了缓冲


有可能吗?其他Peewee开发人员如何处理大型数据集上的迭代?

Willem,对于这个问题,Postgresql提供了Peewee支持的命名游标(或服务器端游标):

我对MySQL不是很熟悉,但也许它提供了类似的功能


如果没有,您可以始终使用分块迭代器。

谢谢您的建议!你能详细介绍一下分块迭代器吗?我不太明白这将如何解决“在2GB数据到达之前等待,然后再开始处理”的问题,因为正常的迭代器不会立即启动。