web-dev-qa-db-ja.com

MySQLとSQL ServerとOracle

私は常にMySQLのみを使用し、他のデータベースシステムは使用していません。

今日の企業会議で質問があり、私は知りませんでした。

78

他のコメンテーターは、商用ソリューションにバンドルされている追加の非コアRDBMS機能をすべてハイライトする権利があると思います。

Oracleのエディションと機能のマトリックスは、「追加」機能を理解するためだけに参照する価値があります。特に、独自のバージョンを開発およびサポートするためにかかるコストのコンテキストでは(可能な場合) MySQLなどの製品: http://www.Oracle.com/us/products/database/product-editions-066501.html

たとえば、「ユーザーは、変更がコミットされてから1週間以内に削除/更新された以前のバージョンのデータを回復できる」という要件がある場合、特定の開発オーバーヘッドを意味しますOracleのFlashback Queryのような組み込み機能を持たないシステムでは、はるかに高くなります。

36
David Aldridge

OracleおよびMSSQLの純粋なRDBMSレイヤーは、主にMySQLおよびInnoDBよりも成熟したプログラム可能な環境を提供します。 T-SQLとPL/SQLは、MySQLのストアドプロシージャとトリガーとはまだ一致していません。

他の違いは、構文とわずかなセマンティックの違いで、物事を簡単または難しくします(トップ500対リミット/オフセットなど)。

しかし、本当のキラーは、MSSQL(Reporting Services、Analysis Services)およびOracle(Data Warehousing、RAC)のRDBMSレイヤーの上に、MySQLにはまだ(まだ)たくさんの統合ツールとサービスがあることです。

23
Vinko Vrsalovic

MySQLは無料ではありません!

無料であると広く理解されていますが、MySQLを組み込んだソフトウェアパッケージを販売または配布しているため、かなり厳しい制限があります。これらの場合、オープンソースプロジェクトまたは非営利組織のみ無料です。データベースとドライバーをアプリケーションの他の部分から完全に分離し、顧客にMySQLのダウンロードとインストールを強制することができれば、おそらく大丈夫です。

それ以外の場合は、「標準」エディションで年間2,000ドルかかります。これは、SQL Serverのライセンス費用にほぼ匹敵します。

どちらも非常に優れたデータベースですが、SQL Serverの利点は次のとおりです。

  • リッチで表現力豊かな手続き型言語(T-SQL)
  • より優れたクエリオプティマイザー、および書き込み集中型の環境でのパフォーマンスの向上
  • プログラミング環境、ETLツール(SSIS)、ディメンションモデリング(SSAS)、レポート環境(SSRS)、合理的に洗練されたジョブスケジューラなど、強力な補助ツールと機能のセット。
  • ストアドプロシージャとUDFの対話型デバッグ。
  • ほとんどの管理タスクを「クリック」で実行できる、比較的使いやすいウィンドウベースの管理ツール。

多くの人々は、Microsoftのツールを使用したり、Windows環境に縛られたりすることにイデオロギー的に反対しており、私はそれを理解できます。しかし、MySQLはビジネスでの使用に無料ではないため、広く理解されていないようです。

MySQLのライセンスポリシーを確認するには、次のWebサイトでご覧ください。 http://www.mysql.com/about/legal/licensing/index.html

12
Curt

Oracleがmysqlに対して持っている他のいくつかのこと。

  • キュー
  • 内部ジョブスケジューリング
  • 成熟したストアドプロシージャ言語
  • パーティション化されたテーブル
  • きめ細かいアクセス制御と監査
  • 強力なリカバリ機能(フラッシュバック、rman、dataguardなど)
  • リモートデータベースリンク
  • アプリケーションエクスプレス
9
Matthew Watson

Oracleが他のベンダーのRDBSを管理するまで、「読者はライターをブロックせず、ライターはリーダーをブロックしません」ということは私にとってはほとんど意味がありませんでした。 Informixと3またはSQL Serverの何年にもわたって、私を信頼して、ロックについてもっと多くのことを知っています。

したがって、サポートと非RDBMS機能に関するコメントに加えて、ロック動作を追加します。

8
Karl

リストするには機能が多すぎます。 nullptrのメッセージのウィキペディアのリファレンスを参照してください。しかし、会議で実際に尋ねられる質問は、「開発者にとって、MSとOracleが提供する地球を揺るがす機能は、MSとOracleがシステムと当社で効果的に活用できますか?」

あなたのニーズに合わせれば、すべての利点は本当に利点です...

5
ThinkJet

Oracle テーブルクラスター および シングルテーブルハッシュクラスター (SQL Serverでも見つかりません)。

5
Nils Weinander

MySQLは、OracleやMSSQLが提供するより豊かなプログラミング環境を提供していませんでした。特に初期のインカネーションでは、ストアドプロシージャさえ持っていませんでした。私の観点からは、DAOやORMマッパーなどを介して、ほとんどのビジネスロジックをアプリケーションに配置する傾向があります。したがって、その下のデータベースエンジンはそれほど重要ではなく、理論的にはアプリケーションは移植可能です。管理の観点から見ると、MSSQLには多くの利点があり(既にリストされています)、データベースを所有するタスクをはるかに簡単にします。マイクロソフトは、開発用の優れた軽量のSQLExpressも提供しています。これは、使いやすく、Visual Studioにうまく統合されています。

4
Andy Monis

注:Oracleについては何も言えないので、SQL Serverについてのみ回答します。

もちろん、MERGEステートメント、BULK INSERT、GROUPING SETなど、データベースエンジンの小さな違いもあります。

しかし、大きな部分はIntegration Services、Analysis Services、Reporting Servicesのようなものだと思います。これらは重要な技術であり、私の意見では、彼らが費用をかける価値は絶対にあります。

4

ThinkJetの答えに触発されて、私が関係するもう1つの要因は、「パフォーマンスの高いアプリケーションをより速く、より安価に開発するために、データベースの独立性をどの程度まで放棄するつもりか」です。会社間ですべてのコードをデータベース間で移植できるようにする必要がある場合、最も単純なRDBMS以外のものを使用しても意味がありません。OracleとMicrosoftが提供する改善点と利点は何の価値もありません。

真のデータベースの独立性を壊すことはほとんど必要ありません。私の哲学は、あなたが支払ったすべての機能(SQL拡張、PL/SQLなど)を活用することに心を配るべきだということです。

もちろん、他のものは異なる場合があります。

3
David Aldridge

この質問には、SQL Server/Oracleが課金できるのは開発機能であるという暗黙の仮定があると思います。私はそれがより多くの実装/サポートだと思う。

ホットバックアップは、少なくともほとんどのインストールで、支払う価値のある主要な機能です。

Oracleの場合、大きな付加価値はRACです。乱雑な複製を伴うことなく、複数のサーバーが同じデータ(つまり、同じディスク)にヒットします。 (一般的に)開発者にはわかりません。

3
Gary Myers

私が本当に気に入っているOracleの機能は次のとおりです。

  • Real Application Clusters、データベースクラスターを作成する非常に強力な方法
  • 高速で更新可能なマテリアライズドビュー、クエリ結果を保存および更新する非常に効率的な方法
  • クエリ結果のサブセットで関数を効率的にグループ化できる分析関数(別名ウィンドウ関数)。これにより、ほとんどの場合、自己結合を回避できます。

私の知る限り、MySQLではこれらのどれも利用できません。そして、特にエンタープライズ版とそのオプションには、さらに多くの便利な機能があります。

1
Karl Bartel