パフォーマンスと信頼性の理由から、WAL モードを使用したいと考えています。ただし、私の環境には mmap() 関数がないため、SQLite を WAL でコンパイルできません (WAL には mmap() が必要です)。mmap() なしで WAL を使用できるように設定しPRAGMA locking_mode=EXCLUSIVE
ますが (この場合、WAL インデックスは共有ファイルではなくヒープ メモリ上に作成されます)、複数のデータベース接続を管理するアプリケーションには適していません。
1 つのプロセスで複数のデータベース接続 (スレッド間同時実行) で SQLite を使用していますが、mmap() はプロセス間メモリ共有にのみ使用されているようです。シングルプロセス環境で mmap() なしで WAL を使用する方法があると思うので。しかし、私は良い解決策を見つけることができません。この問題を解決するためのアイデアはありますか?
ありがとう。