Python3 - 有没有一种方法可以逐行遍历一个非常大的SQlite表,而不需要将整个表加载到本地内存中?

14 浏览
0 Comments

Python3 - 有没有一种方法可以逐行遍历一个非常大的SQlite表,而不需要将整个表加载到本地内存中?

我有一个非常大的表格,有250,000+行,其中许多行包含一个大的文本块。目前表格大小为2.7GB,预计至少会增长十倍。我需要对表格的每一行执行特定的Python操作,但每次只需要访问一行。

目前我的代码大致如下:

c.execute('SELECT * FROM big_table')
table = c.fetchall()
for row in table:
    do_stuff_with_row

当表格变得比我可用的内存还大时,这个方法无法正常工作,Python在运行时会卡住。有没有更好(更节省内存)的方法可以逐行迭代整个表格?

0