2012-08-31 67 views
0

我有一個巨大的(> 10GB)sqlite數據庫,在許多(最多CPU核心數)進程(相同的可執行文件)之間共享。這是一個專門的應用程序,所以RAM不是問題,我想在內存中緩存儘可能多的數據庫。我發現約PRAGMA cache_size;,我成功地使用它,但是由於許多進程中的每一個都有其自己的專用高速緩存,因此這會使內存使用量不成比例。SQLite共享緩存

現在,我發現SQLite Shared-Cache Mode,但我看不到這是否適用於不同的進程或僅在一個進程中的線程。我已經運行了一些確認後者的測試,但我不確定我是否做錯了什麼,或者是否需要做其他事情來完成這項工作。

回答

0

該頁面解釋說「可以在整個過程中共享相同的緩存」。

理論上,您可以嘗試配置您的操作系統,以便將整個數據庫保存在文件緩存中。

如果單個查詢中的數據量較小,則可能需要使用客戶端/服務器數據庫,以便只需在服務器進程中完成緩存。