複数の接続から同時に SQLite データベースの読み取りと書き込みを行うことはできますか? 質問する

複数の接続から同時に SQLite データベースの読み取りと書き込みを行うことはできますか? 質問する

2 つのプロセスで使用される SQLite データベースがあります。最新バージョンの SQLite では、1 つのプロセス (接続) がデータベースへの書き込みトランザクションを開始している間に、他のプロセスが同時にデータベースから読み取ることができるのでしょうか?

ベストアンサー1

私はさまざまな情報源(主に sqlite.org)から情報を収集し、それらをまとめました。

まず、デフォルトでは、複数のプロセスが同じ SQLite データベースを同時に開くことができ、複数の読み取りアクセスを並行して満たすことができます。

書き込みの場合、データベースへの単一の書き込みによってデータベースが短時間ロックされ、読み取りも含めてデータベース ファイルにまったくアクセスできなくなります。

バージョン3.7.0から、新しい「先行書き込みログ」(WAL)読み取りと書き込みを同時に実行できるオプションが利用可能です。

デフォルトでは、WAL は有効になっていません。WAL を有効にするには、SQLite のドキュメントを参照してください。

おすすめ記事