SQLite是否支持在可能的情况下将索引保留在其缓存中?

时间:2012-07-10 11:55:07

标签: memory-management sqlite indexing

我正在使用SQLite 3在内存受限的环境中工作。

我将PRAGMA缓存大小设置为(比方说)1MB。

假设我有2MB的数据和100Kb的索引数据。

SQLite是否会尝试将索引保留在数据本身之上的内存缓存中(在缓存中留下900Kb的数据)?

如果没有,从内存角度来看如何访问索引?

感谢。

1 个答案:

答案 0 :(得分:0)

不,索引不会无限期地保留在内存缓存中。如果要插入,更新或删除新数据,sqlite3可能只是释放较少使用的数据。

事实上,索引与内存管理几乎没有什么共同之处:对于每个INSERTUPDATE,sqlite3将重新排列数据(取决于您的HD或RAM上的系统)。您可能会说,当您尝试访问该表时,该表已经订购了。与没有索引的表相比,没有更多的内存需要。