Peewee ORM:如何有效地遍历大型结果集

我希望程序从MySQL服务器接收到行后立即开始处理行(许多行和连接缓慢).

docs recommend for querying lots of rows:MyModel.select().iterator().

但是,似乎第一个DB服务器发送了所有数据,然后迭代器产生了第一个结果(在另一个终端中用tcpdump进行了验证).

我尝试使用原始数据库驱动程序MySQLdb和pymysql完成此操作,但结果似乎也得到缓冲.

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

解决方法:

威廉姆(Willem),针对此问题,Postgresql提供了命名游标(或服务器端游标),这些游标受peewee支持:

http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#server-side-cursors

我对MySQL不是很熟悉,但是也许它提供了类似的东西?

如果没有,您总是可以使用分块的迭代器.

上一篇:在peewee union select中放置一个空字段


下一篇:Python和Postgresql:OperationalError:fe_sendauth:未提供密码