2

我正在考虑在 python 中使用 sqlite3 库来做一些数据存储。避免将太多数据加载到内存中对我来说很重要 - 可能有很多 (10+) GB 的数据,我希望能够以一种不会将数据一次全部加载到 RAM 中的方式访问它. sqlite3 会为我完成这个吗?我正在考虑以下代码:

import sqlite3
conn = sqlite3.connect('example.db')

c = conn.cursor()

c.execute('''SELECT * FROM table1''')

var = c.fetchall()

假设example.db占用 14 GB,table1占用 1 GB。有多少数据会加载到 RAM 中?

4

1 回答 1

4

您几乎肯定不想使用fetchall(),这会将您的整个表加载到 RAM 中,加上所需的任何内务管理,因此“超过 1 GB”是您问题的答案。改为使用fetchone()

于 2013-09-02T19:06:53.777 回答