私たちのアプリケーションは、現在、組み込みデータベースとしてH2を使用して、我々は次のシナリオを持っている:H2データベースは、大きなテーブルを持つ組み込みデータベースとして適していますか?
H2は「一時的なデータベース」として使用されています。 H2に挿入されたデータは、アプリケーション・タスクによって30分ごとにOracleデータベース(「公式」データベース)に周期的に送信/挿入され、H2から削除されます。
このメインの「テンポラリテーブル」は、1時間に1つのテーブルに平均183行挿入されています。
私たちは、照会のためだけにメインのアプリケーション・タスクで使用される2つの他の大きなテーブル(それぞれ2,100万と150万レコード)を持っています。最後の同期以降にOracleで作成、更新、削除されたH2行を更新して、Oracleからこれらの表を増分更新する別のアプリケーション・タスクがあります。 30分ごとに発生します。
我々は何の問題もなく、これまでに1.5年間のH2を使用しているが、我々はRed Hat official documentationでH2に関する次の警告を見つけた
:
しかし、それは生産に使用すべきではありません環境。これは、アプリケーションのテストと構築に必要なすべての標準をサポートしていますが、実稼働環境で使用するには堅牢ではなく、スケーラビリティがない、非常に小さく自己完結型のデータソースです。
このようなシナリオでは、H2は本番環境で使用するように設計されており、信頼性がありますか?
これをサポートするベンチマークはありますか? H2 official performance benchmarkは実行時間とパフォーマンスの使用状況を示しますが、データ量については何も言及していません。
こんにちは、ディーン。答えてくれてありがとう。永続的なDB(ファイルシステム)として使用しています。 –
これでヒープの問題は少なくなりますが、共通の組み込みDBを共有できないため、単一のJVMを超えて拡張する必要がある場合は、スケーリングの問題にぶつかります。それ以外の制限がない場合は、慎重に進めるといいでしょう。 –
@DeanClark メモリモードで実行すると、H2はデータストレージ用のJVMヒープメモリを共有しますか? – manu