2

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

我会将 PRAGMA 缓存大小设置为(例如)1MB。

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

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

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

谢谢。

4

1 回答 1

0

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

事实上,索引与内存管理几乎没有共同之处:每次使用INSERTorUPDATE时,sqlite3 都会重新排列数据(取决于您的系统在 HD 或 RAM 上)。简而言之,您可能会说,当您尝试访问该表时,该表已被订购。与没有索引的表相比,不需要更多的内存。

于 2012-10-26T12:43:21.497 回答