複数のスレッドで Haskell の HDBC を使用して SQLite データベースからクエリ (読み取り) を行う場合、単一の接続を使用できますか?それとも各スレッドに独自の接続を使用する必要がありますか? ありがとう。
質問する
266 次
1 に答える
1
hdbc-sqlite コードを検索したところ、次のコメントが見つかりました。
変更の数を処理するためのロジック: クエリの前後の合計変更を確認します。それらが異なる場合は、ローカルの変更を確認してください。(ドキュメントによると、実際に変更を行うクエリを実行しない限り、ローカル変更カウンターは更新されないようです。)
とにかく、SQLiteは特定のdbhを複数のスレッドで使用することをサポートしていないため、これはスレッドに関しては問題ありません。
公式の Sqlite ドキュメントには、このトピックに関するページ全体があります
FAQには次のように書かれています。
(5) 複数のアプリケーションまたは同じアプリケーションの複数のインスタンスが、1 つのデータベース ファイルに同時にアクセスできますか?
複数のプロセスが同時に同じデータベースを開くことができます。複数のプロセスが同時に SELECT を実行できます。ただし、いつでもデータベースに変更を加えることができるプロセスは 1 つだけです。
この情報は、両方のアプローチを除外します。おそらく、この情報が間違っていることを示すために、いくつかのテストを作成できます。
于 2013-06-03T20:12:08.503 に答える