どのタイプの要件について、MySQLよりもApache Derby(またはJava DB))を選択しますか(またはその逆)? 1つ。Glassfish+ Java/Restlet + MySQLを使用してWebベースのアプリケーションを開発しています。
このシステムには約100〜200人のユーザーがいて、特定の時間に約30〜50人の同時ユーザーの負荷がかかると予想しています。
Webアプリをダウンロード/配布可能にしたい場合は、ダービーを見るように言われました。しかし、それが私がそれを使用する唯一の理由ですか? Webアプリに適していますか?誰かがそれを使用しましたか?あなたの経験はどのようなもので、いつどちらを選ぶのですか? (比較に関するほとんどの議論は、ストアドプロシージャ、トリガーなどをサポートしていなかったMySQL v5よりも前のものですが、現在はそうではありません)。
リクエストを送信するWebサーバーを備えたスタンドアロンDBサーバーモデルを理解できますが、このモデルは組み込みデータベースでどのように変化しますか?または、ネットワーク構成でデフォルトでDerbyを使用しますか?
なぜDerbyとMySQLだけがRDMBSだと考えているのですか? Derbyと言う場合は、[〜#〜] hsqldb [〜#〜]、H2、SQLiteも同様です。 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をスタンドアロンサーバーとして実行する必要があることを意味します。
違いを生む要件は、いわゆる「非機能」要件です。容量、信頼性、スループット(および応答時間)、可用性、およびセキュリティです。これは、ソフトウェア自体の問題(入手のしやすさ、それに基づくソフトウェアの保守の難しさなど)とともに発生します。
Oracleは非常に高速で、非常に堅牢で、十分にサポートされており、非常に高価です。
MySQLは、広く使用されている一般的な選択肢として適しています。高可用性と信頼性(ミラーリングとマスタースレーブを介して)を構成でき、多くのプログラマーによく理解されており、Grails、Rails、JBossなどの多くのプラットフォームソフトウェアにうまく統合されます。
ダービーはプラットフォームに非常に依存せず、多くの人がJavaを簡単に読むことができるので、優れています。
SQLiteは高速で軽量で、多かれ少なかれMacにネイティブです。
... 等々。
まず、どの非機能要件が重要であるかを把握してから、DBMSを選択します。
更新
さて、あなたのコメントをフォローアップします。
これらの数値を使用して、最初に、なぜ別個のRDBMSを使用するのかを尋ねます。これは1000行です。たとえば、シリアル化するコレクションのコレクションに、単にそれらをメモリに保存することを検討してください。
Railsを使用しているなどの理由で本当にDBが必要な場合は、どのRDBMSにも挑戦していません。ドメインにいるため、選択が難しい場合がありますall完全に良い。もしそうなら、それから最も使いやすく、サポートしやすいものを選んでください。それはおそらくですが、誰もがそれを使用しているという理由だけで、MySQLではありません。