SQLite中的页面缓存在啥情况下会被清除?

Posted

技术标签:

【中文标题】SQLite中的页面缓存在啥情况下会被清除?【英文标题】:Under what circumstances does the page cache in SQLite get cleared?SQLite中的页面缓存在什么情况下会被清除? 【发布时间】:2014-10-30 20:53:54 【问题描述】:

我在 ios 应用程序中使用 sqlite。有时我会在运行时替换一个 sqlite 文件,然后关闭并重新打开与它的连接。但是当连接到新文件时,sqlite 似乎经常从旧文件返回查询结果。到目前为止,我的猜测是它以某种方式保留和使用旧文件中的页面缓存。

所以我的问题是:在什么情况下 SQLite 的页面缓存会被丢弃?

【问题讨论】:

【参考方案1】:

知道了。我正在浏览我所有的连接,关闭并重新打开每个连接。当我简单地关闭它们(并让它们在需要时根据需要重新打开)时,缓存似乎被清除了。我的猜测是缓存是每个文件而不是每个连接的,并且当文件的所有连接都关闭时它会被重置。这在多线程环境中可能很难实现。

【讨论】:

以上是关于SQLite中的页面缓存在啥情况下会被清除?的主要内容,如果未能解决你的问题,请参考以下文章

React:useState 钩子中的 setState 在啥情况下会导致重新渲染?

如何检查 sqlite3 中的缓存大小

在啥情况下会触发jquery ajax中的error?

如何清除Oracle中的所有缓存项

AppDomain.DoCallback()在啥情况下会失败?

在啥情况下会在控制权到达 main() 函数之前发生崩溃? [复制]