2012-04-09 4 views
1

sqlite3のシンプルさは気に入っていますが、並行して更新をうまく処理できるかどうかは心配です。私たちのWebアプリケーションは、更新の権利を持つ約30人のユーザー(最大50人)と、そのページのみを閲覧できる多数のWebユーザー(500人のWebユーザー)を対象としています。それらの30人のユーザー(50人)は同時に更新を行いません。データベースへの毎日の更新は、通常のベースで1000回以上の更新(テーブルに1つの更新として1つのdbレコードを保存することを検討する)でなければなりません。更新アクティビティは、午前9時〜午後5時の間に発生する可能性が最も高いです。sqlite3は30の同時更新要求を正常に処理できますか?

sqlite3はデータベース全体をロックしているので(読み込み要求がロックされているかどうかわからない)、私たちの疑問は例外エラーを表示せずに状況に応じて並行更新をうまく処理できる強力なsqlite3です。 ありがとうございます。

+0

Sqliteはあまりにも多くのリクエストを受信して​​いるので、それ自体が例外を生成するべきではありません。しかし、後続のリクエストを効果的に待つことを期待しているため、同時訪問者はデータベースロックを争うことになります。例外が発生している場合は、データベースが応答する前にWebシステムがタイムアウトしている可能性があります。作業中の1日につき1kアップデートしか得られない場合は驚きです。私はSqliteが ':)'を扱うことができると確信しています。 – halfer

+0

私たちはsqlite3でアプリケーションを検証するための実際のデータを持っていないので、他の人が私たちのために答えを持っているかどうかを調べたいのです。コメントありがとう。 – user938363

答えて

2

SQLiteの仕組みについて十分な情報があると思います。あなたの質問に対する答えは "はい"です。しかし、本当の問題はパフォーマンスとは何でしょうか?これは、データベースへの更新/挿入の頻度に依存します。更新はロックされ、読み込みを待機させます。

パフォーマンスは許容され、使用しているとします。データベースが破損した場合はどうなりますか?ほとんどの高度なDBMSシステムでさえ、データが破損する可能性があります。これはサーバーのシャットダウンからバグまで、多くの理由があります。あなたのSQLiteが壊れてしまったら、私が知っている限り、データベースファイルを回復するのは難しいでしょう。

私は、埋め込まれていないDBMSを使用する危険性がないことを強くお勧めします。

+0

sqlite3を使用しないでください。負荷を処理することすらできますか?どのようにバックアップとsqlite3データベースを回復するのは難しいですか?それはmysqlのデータベースを回復すると異なるのですか? – user938363

+0

@ ata-s:Sqlite _is RDBMS(Wikipedia: "sqliteは、小さな(〜275 kB)Cプログラミングライブラリに含まれるACID準拠の組み込みリレーショナルデータベース管理システムです)。 – halfer

+1

また、[sqlite FAQから](http://www.sqlite.org/faq.html#q21):「非常にまれなバグ(DatabaseCorruptionを参照)の場合を除いてSQLiteはデータベースファイルを壊さないし、それでもあなたのアプリケーションがクラッシュしたり、電源が落ちても、データベースは安全です。SQLiteのクラッシュ耐性については、幅広く研究されています数百万人のユーザーによる何年もの現実の経験によってテストされ、証明されています。 – halfer