我正在使用SQLite 3在内存受限的环境中工作。
我将PRAGMA缓存大小设置为(比方说)1MB。
假设我有2MB的数据和100Kb的索引数据。
SQLite是否会尝试将索引保留在数据本身之上的内存缓存中(在缓存中留下900Kb的数据)?
如果没有,从内存角度来看如何访问索引?
感谢。
答案 0 :(得分:0)
不,索引不会无限期地保留在内存缓存中。如果要插入,更新或删除新数据,sqlite3可能只是释放较少使用的数据。
事实上,索引与内存管理几乎没有什么共同之处:对于每个INSERT
或UPDATE
,sqlite3将重新排列数据(取决于您的HD或RAM上的系统)。您可能会说,当您尝试访问该表时,该表已经订购了。与没有索引的表相比,没有更多的内存需要。