8

SQLite インメモリ データベースがクリーンアップされないようにするには、同じ接続を使用してデータベースにアクセスする必要があります。ただし、同じ接続を使用すると、SQLite はデータベースへのアクセスを同期します。したがって、メモリ内データベースに対して読み取りを実行するスレッドが多数ある場合、マルチコア マシンでは、ファイル ベースのデータベースに対してまったく同じコードを実行するよりも遅くなります。

両方の長所を活かす方法はありますか? つまり、データベースへの複数の同時呼び出しを許可するインメモリ データベースですか?

4

3 に答える 3

3

答えはノーだ。SQLite ユーザー グループに質問したところ、Pavel Ivanov から次のような回答がありました。

いいえ、SQLite はデータベースへの完全な同時アクセスをサポートしていません。獲得できる唯一の同時実行性は、共有キャッシュのないオンディスク データベースを持つことです (つまり、実際にはメモリ内にデータベースの複数のコピーを持つことになります)。もちろん、異なるプロセスからの同時実行のオプションは考慮していません。

于 2010-04-07T13:39:27.027 に答える
2

ページ サイズとキャッシュ サイズをデータベース全体を格納するのに十分な大きさに設定すると、読み取り操作はキャッシュから実行され、パフォーマンスはインメモリ データベースとほぼ同じになります。

于 2010-04-02T17:50:53.587 に答える
0

ここから私は答えがイエスであることを理解しましたhttp://www.sqlite.org/faq.html#q6

于 2010-04-02T13:48:33.920 に答える