我有一个巨大的(> 10GB)sqlite数据库,它在许多(最多CPU核心数)进程之间共享(相同的可执行文件)。这是一个专门的应用程序,因此RAM不是问题,我想在内存中缓存尽可能多的数据库。我发现了PRAGMA cache_size;
并且我成功地使用了它,但是由于每个进程都有自己的私有缓存,这会使RAM的使用不成比例。
现在,我发现了SQLite Shared-Cache Mode,但我无法看到这是否适用于不同的进程或仅适用于一个进程中的线程。我已经进行了一些确认后者的测试,但我不确定我是做错了什么,或者是否需要做其他事情来使这项工作。
答案 0 :(得分:0)
该页面解释说“可以在整个过程中共享相同的缓存”。
理论上,您可以尝试配置操作系统,以便将整个数据库保存在文件缓存中。
如果单个查询中的数据量很小,则使用客户端/服务器数据库可能是值得的,因此只需要在服务器进程中完成缓存。