この質問をすると、H2データベースの現在のバージョンが2011年7月1日(ごく最近)にリリースされたことがわかります。とても健康的です。このペースは維持されますか?新しいリリースのペースが遅い場合、イベントはオープンソースコミュニティによって長期的にサポートされますか?
コスト上の理由から、私は現在、ハイパフォーマンスアプリにPostgresqlを使用することを検討しており、H2データベースには適切な機能セット(基本的には必要なものすべて)があるようです。 H2を使用することが正しい決定であるかどうかだけではありません。基本的に、私の決定は、サブスクリプションベースまたはコミュニティによる長期サポートに基づいている必要があります。
このペースは維持されますか?
それが計画です。
オープンソースコミュニティによって長期間サポートされる予定ですか?
将来を予測するのは難しいです。それが、まだ誰もあなたの質問に答えていない理由だと思います:-)十分な人々がそれを使用しているので、サポートされると確信しています。 H2は多くの(オープンソースおよび商用)製品で使用されています。メーリングリストの質問にかなり多くの人が定期的に返信しています。 H2には現在多くのコミッターがいませんが、その理由の1つは、ユーザーが一般にその機能に満足していることと、現在の開発速度が十分に速く、コード品質が十分であることです。
サブスクリプションベースのサポートは現在利用できませんが、将来的には計画されています(いつか商用サポートを提供する計画でした)。それがまだ利用できない理由は、H2が会社を始めるのに十分な市場シェアをまだ持っていないからです。
いくつかの追加情報を提供するために、2010年に大規模な[r]企業データベースシャードをH2からMySQLに切り替えました。最大の理由は、内部H2エンジンがシングルスレッドであることです。数十万または数百万の行を持つデータベース全体で、最適化されていない大規模なクエリが実行されると、他のすべてのデータベース操作が停止します。詳細は H2のドキュメント を参照してください。 H2の行ロックは、MySQLやPostgresに比べて比較的未熟なようです。
さらに、MySQLとPostgresは、独自にロールするのではなく、レプリケーションメカニズムも提供します。これにより、ダンプ中にH2データベースをブロックする代わりに、スレーブからデータベースシステムを「ライブ」でバックアップできます。
最後に、このパフォーマンステストは実行していませんが、H2は小規模から中規模のデータベースでは高速になっていますが、データベースのサイズ、特に同時クエリの数を増やすと、MySQLとPostgresは等しくなり、その後全体的なパフォーマンスが最も優れています。特に、クエリ時間の分布に注目してください。
私たちはブティック、メモリ、テストデータベースにH2を使用し続け、非常に成功しています。トーマスに感謝します!
H2は素晴らしいデータベースエンジンです。 H2に関係のない問題を解決した後、PostgreSQLとMySQL(どちらもまだサポートされています)からH2に切り替えました。 H2は私たちの主要なデータベースの選択となりました。
速度が主な理由ですが、他にもあります。埋め込みモードは驚くべきものであり、ポータブルデバイスにソフトウェアをインストールしたり、Dropboxを介してクラウド上でデータベースを共有したりする柔軟性さえ与えてくれます!
「Datanucleus」を介して「永続的依存」しているため(トリガーや手順などはありません)、多くの機能は使用しませんが、アプリはH2をプッシュするのに十分複雑です!そして、それは完璧に提供します。
その理由は、H2が引き続きアウトパフォームし続けているためです。 2019年現在、H2はすばらしいデータベースです。私たちは4年以上、すべてのスタンドアロンアプリケーションで使用しており、SQLiteとMySQLの間のギャップを最小限に抑えています。 MySQLと同じかそれよりも高速に実行されます。
H2はどこに適していますか?
SQLiteよりも優れている理由
MySQLとの比較:
Check
制約のサポート。MySQLでは最近まで利用できませんでした。PostgreSQLとの比較:
テクニカルサポートを提供している間は、処理が最も簡単です。ドラッグアンドドロップと同じくらい簡単に共有できます。