2012-08-31 168 views
0

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

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

回答

0

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

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

如果单个查询中的数据量较小,则可能需要使用客户端/服务器数据库,以便只需在服务器进程中完成缓存。