Python Peewee ORM:如何有效地迭代大型结果集
我希望我的程序在从MySQL服务器接收到行后立即开始处理这些行(行多,连接速度慢) 方法:Python Peewee ORM:如何有效地迭代大型结果集,python,peewee,Python,Peewee,我希望我的程序在从MySQL服务器接收到行后立即开始处理这些行(行多,连接速度慢) 方法:MyModel.select().iterator() 然而,在迭代器产生其第一个结果(在另一个终端中用tcpdump验证)之前,似乎DB服务器首先发送所有数据 我尝试用原始数据库驱动程序MySQLdb和pymysql来实现这一点,但结果似乎也得到了缓冲 有可能吗?其他Peewee开发人员如何处理大型数据集上的迭代?Willem,对于这个问题,Postgresql提供了Peewee支持的命名游标(或服务器端
MyModel.select().iterator()
然而,在迭代器产生其第一个结果(在另一个终端中用tcpdump验证)之前,似乎DB服务器首先发送所有数据
我尝试用原始数据库驱动程序MySQLdb
和pymysql
来实现这一点,但结果似乎也得到了缓冲
有可能吗?其他Peewee开发人员如何处理大型数据集上的迭代?Willem,对于这个问题,Postgresql提供了Peewee支持的命名游标(或服务器端游标): 我对MySQL不是很熟悉,但也许它提供了类似的功能
如果没有,您可以始终使用分块迭代器。谢谢您的建议!你能详细介绍一下分块迭代器吗?我不太明白这将如何解决“在2GB数据到达之前等待,然后再开始处理”的问题,因为正常的迭代器不会立即启动。