DB にかなり集中的に書き込む 5 ~ 30 のクライアントを持つサーバーで HSQLDB + Hibernate を使用したいと考えています。
各クライアントは、1 つのテーブルに 30 秒ごとに 12,000 行 (24 時間年中無休、1 日あたり約 10 億行) を保持します。 5 ~ 10 秒ごとに数件のリクエストが平均的に送信されます。
HSQLDB はそのようなユースケースを処理できますか、それとも MySQL/PostgreSQL に切り替える必要がありますか?
DB にかなり集中的に書き込む 5 ~ 30 のクライアントを持つサーバーで HSQLDB + Hibernate を使用したいと考えています。
各クライアントは、1 つのテーブルに 30 秒ごとに 12,000 行 (24 時間年中無休、1 日あたり約 10 億行) を保持します。 5 ~ 10 秒ごとに数件のリクエストが平均的に送信されます。
HSQLDB はそのようなユースケースを処理できますか、それとも MySQL/PostgreSQL に切り替える必要がありますか?
1 秒あたり合計 2000 ~ 12000 回の書き込みと 5000 ~ 30000 回の読み取りが見られます。
高速なハードウェアを使用すると、HSQLDB はおそらく永続メモリ テーブルでこれを処理できます。CACHED テーブルを使用すると、ソリッド ステート ディスクでより低い範囲を処理できる場合があります (ディスクのシーク時間が主なパラメーターです)。
このテストを参照してください。比較のために、MySQL と PostgresSQL で実行できます。
切り替える必要があります。HSQLDB は重要なアプリ向けではありません。時間の経過とともにデータが破損し、起動時のパフォーマンスが低下することに備えてください。
主な否定的な宣伝は JBoss から来ています: https://community.jboss.org/wiki/HypersonicProduction
http://www.coderanch.com/t/89950/JBoss/HSQLDB-productionも参照してください。
同様の質問も参照してください:本番環境で HSQLDB を使用しても安全ですか? (JBoss AS5.1)