2

我正在使用PRAGMA temp_store=2,所以所有临时表都是在内存中创建的。我有一个包含 1,000,000,000 条记录的临时表。我的测试应用程序使用的内存增长到大约 80 MB。如果我从该表中删除所有记录或删除表,那么我的应用程序仍然使用 80 MB 内存。为什么 sqlite 不释放内存?

问候

4

1 回答 1

2

该表以前使用的内存仍然是数据库的一部分,以后插入该数据库的任何数据都将重用该内存。

要完全释放该内存,您必须关闭数据库连接(如果您想存储更多临时数据,请打开一个新连接)。

如果您希望数据库稍后重用数据,那么在此期间释放它将是无用的开销,除非您的机器内存极度匮乏。

于 2012-12-29T14:41:37.230 回答