2012-11-14 14 views
6

SQLiteは同時アクセスを管理できますか?私はC/C++でSQLiteを使用していますか?それがサポートしていない場合。 SQLiteで同時アクセスをサポートする提案はありますか?SQLiteでの同時アクセス

+0

トランザクションは使用されていますか? – Whymarrh

+0

http://stackoverflow.com/questions/4060772/sqlite3-concurrent-access – Oxi

答えて

9

はいドキュメントがhereを述べたとしてそれがない:

SQLiteのバージョン3.0.0は、SQLiteバージョン2以上の同時実行性を向上させ、 ライターの飢餓の問題を軽減するために設計された新しいロックやジャーナルメカニズム を導入しました。新しいメカニズムでは、複数のデータベースファイルを含むトランザクションのコミットをアトミック でも行うことができます。

と:

SQLiteはUnix上でロックを実装するためにPOSIX勧告的ロックを使用しています。 Windowsでは、LockFile()、LockFileEx()、およびUnlockFile()システム が使用されます。

And here

SQLiteは唯一のプロセスと データベース接続が一度にデータベースを変更しようとしていることを確認するために、ファイルシステムのロックを使用しています。 ファイルシステムのロックメカニズムは、VFSレイヤーに実装され、すべてのオペレーティングシステムで異なる です。 SQLiteはこの の実装が正しいかどうかに依存します。何かがうまくいかず、2つ以上のプロセスが同じデータベースファイルを同時に書き込める場合は、 重大な損傷が生じる可能性があります。

関連する問題