2016-08-26 6 views
1

私は現在SQLiteでPythonを使用しており、複数のスレッドがデータベースに同時に読み書きすることが安全かどうか疑問に思っています。 SQLiteは、データがキューとして入ったり、データが破損しないようにする仕組みを持っていますか?SQLiteデータベースへの複数の読み込み/書き込みを同時に行うことはできますか?

+1

関連性のないMySQLのようなものにはタグを付けないでください。 – tadman

+0

[複数の接続からSqliteデータベースのデータを同時に読み書きする]の可能な複製(http://stackoverflow.com/questions/10325683/read-and-write-sqlite-database-data-concurrently-from-multiple-connections) – Thilo

+0

@タグマンタグが削除されました。 – Sam

答えて

2

SQLiteには、データが破損しないようにするための堅牢なロック機構がいくつかありますが、それに伴う問題は、同時に複数のスレッドの読み書きができれば、彼らはすべての他の人を旅するようにパフォーマンス。たとえ動作していても、この方法で使用するつもりはありません。

これは、目的の使用パターンであれば、何らかの種類の共有データベースサーバーを使用して調べることをお勧めします。それらは並行操作のためのより良いサポートを持っています。

+0

どのような種類の共有データベースサーバーを提案できますか? – Sam

+2

Postgres、MySQL/MariaDB、MongoDBが最も人気があります。 – tadman

3

これも私の問題です。 SQLiteは、あなたがDB上で並行処理を行なわないようなロック機構を使用しています。しかし、ここで私のdbが小さいときに私が使用するトリックです。すべてのテーブルデータをメモリに選択して操作し、元のテーブルを更新することができます。

私はこれは単なるトリックであり、必ずしも問題を解決するとは限りません。

あなたのトリックを作成することをお勧めします。

関連する問題