0

多くの(CPUコア数まで)プロセス(同じ実行可能ファイル)間で共有される巨大な(> 10GB)sqliteデータベースがあります。これは特殊なアプリケーションであるため、RAMは問題ではなく、データベースの多くをメモリにキャッシュしたいと思います。私はそれを見つけてPRAGMA cache_size;うまく使用していますが、多くのプロセスのそれぞれが独自のプライベートキャッシュを持っているため、RAMの使用量が不均衡になります。

今、SQLite共有キャッシュモードを見つけましたが、これが異なるプロセスに適用されるのか、1つのプロセスのスレッドだけに適用されるのかわかりません。私は後者を確認するいくつかのテストを実行しましたが、私が何か間違ったことをしているのか、これを機能させるために何か他のことをする必要があるのか​​わかりません。

4

1 に答える 1

0

そのページでは、「同じキャッシュをプロセス全体で共有できる」と説明されています。

理論的には、データベース全体がファイルキャッシュに保持されるようにOSを構成することができます。

個々のクエリのデータ量が少ない場合は、クライアント/サーバーデータベースを使用して、サーバープロセスでのみキャッシュを実行する必要がある場合があります。

于 2012-09-01T22:23:31.993 に答える