私はプログラマーとして、Oracle や MySQL など、さまざまなシステムに取り組んできました。オラクルの方が安定しており、堅牢で、安全であるという声をよく耳にします。これは事実ですか?
もしそうなら、どのような方法で、なぜですか?
この質問の目的のために、おそらく 500,000 レコード程度の中小規模の本番 DB を考えてみましょう。
私はプログラマーとして、Oracle や MySQL など、さまざまなシステムに取り組んできました。オラクルの方が安定しており、堅牢で、安全であるという声をよく耳にします。これは事実ですか?
もしそうなら、どのような方法で、なぜですか?
この質問の目的のために、おそらく 500,000 レコード程度の中小規模の本番 DB を考えてみましょう。
はい。Oracle はエンタープライズ グレードのソフトウェアです。
mysqlが本当に安定しているかどうかはわかりません。mysqlをそれほど使用したことはありませんが、mysqlがクラッシュしたことを覚えていません。オラクルがクラッシュしたことがありますが、クラッシュした場合は、クラッシュした理由について、必要以上に詳細な情報が得られます。また、オラクルのサポートはいつでもサポートします (有料)。
その非常に堅牢な Oracle DB は、データを壊す前にできる限りのことを事実上実行します。ディスク領域が不足すると、MySQL サーバーに非常に奇妙なことをさせたことがあります。Oracle はすべてのトランザクションを停止し、可能であれば最終的にシャットダウンします。 t 必要なファイルを書き込みます。where句を忘れて、単一の行ではなくすべての行を更新するなどの愚かなことをしても、オラクルでデータを失ったことはありません。データベースを台無しにする前の状態に戻すのは非常に簡単です。
セキュリティについてはよくわかりませんが、確かに Oracle は、DB に接続して認証する方法について多くのオプションを提供しています。どのユーザーが何にアクセスできるかなど、多くのオプションが提供されます。しかし、ほとんどの場合と同様に、セキュリティを真剣に考えたい場合は、専門家に任せる必要があります。オラクルがセキュリティを正しく理解していなければ、失うものは確かに多くあります。しかし、すべてのものと同様に、エクスプロイトがありました。
他に何もなければ、これを考慮してください... Oracleが詰め込むと、CPUあたり40,000ドルを支払う顧客がいます(彼らが吸盤で定価を支払う場合)ライセンス+年間メンテナンス料金..これは彼らに非常に強力な集中力を与えます顧客が製品に満足していることを確認してください。
小規模なデータベースの場合、mysql よりもかなり前に Oracle XE を強くお勧めします。mysql(無料)の重要な機能を備えており、インストールが非常に簡単で、優れたWebインターフェイスとアプリケーションフレームワーク(Application Express)が付属しています。DBが単一のCPU、1GBのRAM、4GBのデータで快適に実行できる場合は、XE私見に行く方法です。
Mysqlには用途があり、多くの人がそれを使って素晴らしいものを構築できることを示していますが、機能の点ではOracle(およびSQL Server、DB2)よりもはるかに遅れています...しかし、無料で習得が非常に簡単です、多くの人にとって最も重要な機能です。
ディスクの容量が不足したときに、Oracleに破損したデータベースを作成させました。デバッグが難しく、大量のリソースを使用し、真剣に熟練したDBAがあなたの手を握らなければ作業するのは困難です。オラクルは、私が場所にインストールしたときに、/ usr / bin /のシステムバイナリ(gccなど)を置き換えました。
一方、PostgreSQLでの作業は、はるかに快適です。オープンソースの*nixシステムでの作業に慣れている場合は、読み取り可能なエラーメッセージが表示され、より理解しやすい方法で動作します。レプリケーションの設定は非常に簡単であるため、データはかなり安全になります。
500K のレコード データベースは、おそらく携帯電話で実行できます。真剣に、これは非常に小さいため、Oracle XE と MySQL の両方で十分に管理できます。
Oracleは、DBAの知識を本当に必要とする獣です。私は、50万件のレコードは何もないと言う人たちに同意します。単純な数値/テキストデータの場合、Oracleの複雑さには価値がありません。
一方、Oracleはblobを使用すると非常に効率的です。各レコードが100MBのバイナリファイルである場合、Oracleで実行するには大金が必要です(優れたSANを備えた3ノードのRACクラスターをお勧めします)。
データ (最大 10M 行、1.2 GB のデータ) を 3 つの異なるデータベース (2 つの Oracle と 1 つの MySQL) に送信するプロジェクトがあります。どちらのシステムでも問題はありませんでしたし、どちらの側にも大きな利点は見られませんでした. 他のプロジェクトですでに Oracle を使用している場合は、新しいデータベースを 1 つ追加することはそれほど問題にはなりませんが、新しいデータベース サーバーのセットアップを考えていて、何も持っていない場合は、 MySQL はお金を節約します。
Oracle Enterprise は、それをサポートする Enterprise、つまり実際の Oracle DBA が存在することを前提としています。初心者の (しかし有能な) DBA は、Oracle が本質的に複雑であるという理由だけで、Oracle よりもはるかに簡単に MySQL を保護できるはずです。もちろん、Oracle には MySQL の現在の機能を超えるエンタープライズ監視ツールがありますが (私が見た限りでは)、DBA はそれらを効果的に使用できる必要があります。
あなたが説明したような小さなデータベースはほとんど何でも処理できるので、インフラストラクチャが既に整っていない限り、Oracle が保証されるとは思えません。どちらにもレプリケーション、トランザクション、およびウォーム バックアップがあるため、どちらも適切に機能します。
答えは、各 DBMS の構成方法に完全に依存します。どちらも 500,000 レコードを何度も処理できます。
オラクルが獣であることは事実です。
Oracle が最も安全な主要データベースであると広く考えられていることも事実です。
問題は、Oracle の開発者が重要なセキュリティの概念を把握していないように見えることです。Oracle は、市場で最も安全性の低いデータベース サーバーです (独立したセキュリティ研究者によると)。
これらの研究者によると、MySQL は実際にはかなり安全です。利用可能なツールについてはあまり知りません。この研究で最も面白いのは、Microsoft SQL サーバーをおもちゃと呼ぶ同じ人々が攻撃者にデータを盗まれ、MSSQL が妨害するのは、彼らが使用している「おもちゃ」ではなく、ひどいセキュリティ モデルを持つ獣を使用しているということです。安全。
オラクルははるかに強力です。その機能の多くは、大規模な企業や高性能環境でのみ求められるものです。主に、スケーリング、レプリケーション、および負荷分散に関する機能です。
小規模な DB の場合は、SQLite を検討してください。中小規模の場合は、MySQL または PostgreSQL を調べてください。最大のものについては、MSSQL、Oracle、DB2 などを見てください。
編集:他の回答を読んだ後、データが本当に重要な場合は、複製されたセットアップが必要であり、そのようなものについてはおそらく大きなDBプロバイダーの1つに目を向けたいと思うでしょう。
潜在的な (非常にまれな) データ損失を犠牲にすることができ、パフォーマンスの向上を望む場合は、いくつかの軽量オプションを検討してください。
さまざまなアプリケーションやサイトに Oracle/SQL Server/MySql を使用しています
多くの異なる分野でOracleに勝るデータベースはありませんが、管理に深い知識を必要とするデータベースは最も多いです。
また、オラクルで問題が見つかった場合は、優秀な DBA の担当者でも、問題を解決するのに数回かかる場合があります。
MySql を使用して 500K または数百万のレコードを扱うことができます。他の DB よりも軽量で、管理作業が不要で、多くのコンピューター リソースを必要としません。私は常に開発用 PC に MySql を持っていますが、これまでまったく直面したことがありませんでした。それに深刻な問題。
Oracle の高度な機能が必要ない場合は、MySql または PostgreSQL を使用する必要があります。