我希望程序从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,python 来源: https://codeday.me/bug/20191119/2038862.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。