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

时间:2015-09-01 20:25:17

标签: python peewee

我希望我的程序在从MySQL服务器收到行时开始处理行(很多行和慢速连接)。

docs recommend for querying lots of rowsMyModel.select().iterator()

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

我尝试使用原始数据库驱动程序MySQLdbpymysql来完成此操作,但结果似乎也得到了缓冲。

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

1 个答案:

答案 0 :(得分:3)

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

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

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

如果没有,你总是可以使用分块迭代器。