2011-12-20 7 views
0

ウェブアプリケーションのメインデータベースとしてSQLiteインメモリDBを実行している人はいますか?私はそのような設定の実現可能性/愚かさを扱うようにしています。WebアプリケーションのメインデータベースとしてのSQLiteインメモリの実現可能性

私は500人未満の同時ユーザーとサイズが小さい(0〜4 GBの)データベースを持つWebアプリケーションを使用している場合、データベース全体をメインデータベースとしてSQLiteのメモリ内で実行する可能性はありますかアプリのために?

メモリ内で実行すると、明らかにACIDの「耐久性」が損なわれますが、SQLite backup APIでは、メモリベースのデータベースをファイルベースのデータベースと同期させることが可能なようです。私は、ユーザーがSave/Update/Deleteコマンドを実行すると、メモリ内のコピーを即座に更新し、ファイルベースのdbにするためにキューに入れることができると考えています。アプリがサイクリングされるたびに、バックアップAPIを介してファイルベースのDBから読み込むことができます。

SQLiteの文書によると、メモリ内のdbを稼働させるためには、1つの接続を開いたままにしておく必要があります。

+0

[memcached](http://memcached.org/)があなたのニーズに合っている可能性はありますか? – TrentVB

答えて

0

データベースをディスクに同期する必要がある場合は、なぜインメモリデータベースを使用しますか?インメモリデータベースの利点は、データをファイルシステムに書き込む必要がないことです。 にはのデータをディスクに書き込む必要があるため、唯一の利点が欠点になりました。それではなぜですか?できるだけ大きなキャッシュをクランクアップするだけです。

+1

私は単一のWebサーバーを持つシステムを考えています。サーバーがダウンした場合、ディスクにバックアップがない場合、ディスクへの書き込みがないとデータベース全体が失われます。すべての通常のWebトラフィックはメモリ内のDBを流れる可能性がありますが、災害復旧のためには書き込みをキューに入れてディスクに保存する必要があると思います。 – Andy

1

データを格納するのではなく、データ処理用にメモリ内データベースを使用してください。とにかくディスクにデータを格納する必要があるため、最初にデータベースをディスクに格納する方がずっと簡単で効果的です。

関連する問題