我正在考虑使用python中的sqlite3库来进行一些数据存储。对我来说,避免将太多的数据加载到内存中是很重要的--可能有很多(10+)千兆字节的数据,而且我希望能够以这样一种方式访问它,即数据不会同时加载到内存中。sqlite3会帮我完成这个任务吗?我特别想到以下代码:
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''SELECT * FROM table1''')
var = c.fetchall()假设example.db占14 gb,table1占1GB。将有多少数据加载到RAM中?
发布于 2013-09-02 19:06:53
您几乎肯定不想使用fetchall(),它会将整个表加载到内存中,再加上所需的事务管理,所以“超过1GB”才是您问题的答案。使用fetchone()代替。
https://stackoverflow.com/questions/18579358
复制相似问题