web-dev-qa-db-ja.com

ダービーまたはMySQLまたは...?

どのタイプの要件について、MySQLよりもApache Derby(またはJava DB))を選択しますか(またはその逆)? 1つ。Glassfish+ Java/Restlet + MySQLを使用してWebベースのアプリケーションを開発しています。

このシステムには約100〜200人のユーザーがいて、特定の時間に約30〜50人の同時ユーザーの負荷がかかると予想しています。

Webアプリをダウンロード/配布可能にしたい場合は、ダービーを見るように言われました。しかし、それが私がそれを使用する唯一の理由ですか? Webアプリに適していますか?誰かがそれを使用しましたか?あなたの経験はどのようなもので、いつどちらを選ぶのですか? (比較に関するほとんどの議論は、ストアドプロシージャ、トリガーなどをサポートしていなかったMySQL v5よりも前のものですが、現在はそうではありません)。

リクエストを送信するWebサーバーを備えたスタンドアロンDBサーバーモデルを理解できますが、このモデルは組み込みデータベースでどのように変化しますか?または、ネットワーク構成でデフォルトでDerbyを使用しますか?

17
PhD

なぜDerbyMySQLだけがRDMBSだと考えているのですか? Derbyと言う場合は、[〜#〜] hsqldb [〜#〜]H2SQLiteも同様です。 MySQLと言う場合は、Postgresもチェックする必要があります(より多くの機能があります)。

これは、無料のRDBMSに名前を付けるためだけのものです。もちろん、チャーリーがすでに述べているように、他にもたくさんの理由があり、どちらにでも行く理由はたくさんあります。ウィキペディアのこの(IMO優れた)比較ページをチェックしてください。ここには、RDBMSの利点と制限があります。

http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

Webアプリが「ダウンロード可能」であるという要件に関する限り、もちろん、RDBMS(Derby、H2、HSQLDBのいずれか)をWebアプリに埋め込むことができます。ただし、MySQLやPostgresなどの統合を構成可能にして、ダウンローダーにWebアプリ自体のセットアップ方法を指示することもできます。結局のところ、Webアプリケーションにコンテナー構成のDataSourceを使用すると、この構成を簡単に行うことができます。

これで、埋め込みデータベースを使用してWebアプリを開発する方が簡単だと思ったとしても、常に一歩先を行くことを考える必要があります。次のような質問:

  • データの不整合を簡単に修正するために、そのデータベースに直接接続できますか? (それは私たち全員に起こります)
  • スキーマを簡単に変更できますか?
  • データを簡単にバックアップできますか?
  • などなど...メンテナンスの質問もあります

あなたのコメントはあなたのデータが時間とともに増加し、それが持続するはずであることを示唆しているので、私は組み込みバージョンを選びませんが、データをアプリケーションから分離しておきます。これは、アプリケーション設計からDerbyを除外するものではないことに注意してください。これは、Derbyをスタンドアロンサーバーとして実行する必要があることを意味します。

18
Lukas Eder

違いを生む要件は、いわゆる「非機能」要件です。容量、信頼性、スループット(および応答時間)、可用性、およびセキュリティです。これは、ソフトウェア自体の問題(入手のしやすさ、それに基づくソフトウェアの保守の難しさなど)とともに発生します。

Oracleは非常に高速で、非常に堅牢で、十分にサポートされており、非常に高価です。

MySQLは、広く使用されている一般的な選択肢として適しています。高可用性と信頼性(ミラーリングとマスタースレーブを介して)を構成でき、多くのプログラマーによく理解されており、Grails、Rails、JBossなどの多くのプラットフォームソフトウェアにうまく統合されます。

ダービーはプラットフォームに非常に依存せず、多くの人がJavaを簡単に読むことができるので、優れています。

SQLiteは高速で軽量で、多かれ少なかれMacにネイティブです。

... 等々。

まず、どの非機能要件が重要であるかを把握してから、DBMSを選択します。

更新

さて、あなたのコメントをフォローアップします。

これらの数値を使用して、最初に、なぜ別個のRDBMSを使用するのかを尋ねます。これは1000行です。たとえば、シリアル化するコレクションのコレクションに、単にそれらをメモリに保存することを検討してください。

Railsを使用しているなどの理由で本当にDBが必要な場合は、どのRDBMSにも挑戦していません。ドメインにいるため、選択が難しい場合がありますall完全に良い。もしそうなら、それから最も使いやすく、サポートしやすいものを選んでください。それはおそらくですが、誰もがそれを使用しているという理由だけで、MySQLではありません。

8
Charlie Martin