我正在遍历一个大型SELECT语句(100GB的数据)的结果,并意识到在遍历游标时,结果将被缓存,直到内存耗尽。
我的代码大致如下:
cursor.execute("SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id")
for row in cursor:
# do something
pass
有什么方法可以防止sqlite缓存结果吗?我试图设置PRAGMA cache_size = 0,但这不能解决问题。
有一个类似的旧SO question,但是没有得到任何有用的答案。