0

我有一个巨大的(>10GB)sqlite 数据库,它在许多(最多 CPU 核心数)进程(相同的可执行文件)之间共享。这是一个专门的应用程序,所以 RAM 不是问题,我想在内存中缓存尽可能多的数据库。我已经发现PRAGMA cache_size;并且我正在成功使用它,但这会使 RAM 使用不成比例,因为许多进程中的每一个都有自己的私有缓存。

现在,我找到了SQLite 共享缓存模式,但我看不出这是否适用于不同的进程或仅适用于一个进程中的线程。我已经运行了一些测试来确认后者,但我不确定我是否做错了什么,或者是否需要做其他事情来完成这项工作。

4

1 回答 1

0

该页面解释说“可以在整个进程中共享相同的缓存”。

理论上,您可以尝试配置您的操作系统,以便将整个数据库保存在文件缓存中。

如果单个查询中的数据量很小,那么使用客户端/服务器数据库可能是值得的,这样缓存只需要在服务器进程中完成。

于 2012-09-01T22:23:31.993 回答