はじめに: プログラマの日常業務では、データベースを扱うことが避けられません。mysql、oracle、sql サーバーなど、私たちが知っているデータベースは数多くあります。 mysql と oracle の簡単な違いをいくつか説明します。 (推奨:
mysql ビデオ チュートリアル 1.トランザクションの送信<strong></strong>MySQL はデフォルトでトランザクションをコミットします。同時に
START TRANSACTION<strong> である必要があります。トランザクションの開始をマークします。そうしないと、ロールバックを使用してデータをロールバックできません。 </strong>
Oracle では、ユーザーが
commit<strong> コマンドを記述するか、</strong>
commit<strong> ボタンをクリックして手動で送信する必要があります。 </strong>
<strong></strong>MySQL は次の SQL 言語を直接使用してクエリを実行でき、制限付きでページングを実現できます。
select ... from ... where ... limit x,y
limit の後の 2 つのパラメーターのうち、x は 0 から始まる開始添え字を表し、y は返されるレコードの数を表します。
ただし、Oracle は疑似列
ROWNUM<strong> とネストされたクエリを使用する必要があります。 </strong>
ROWNUM<strong> はレコードの行番号を表しますが、行取得後に代入されますので注意してください。したがって、第 1 レベルのクエリ言語で </strong>
ROWNUM<strong> 間隔を指定してページング データを取得することはできず、別のクエリが必要です。 </strong>
、トランザクション分離レベル<strong></strong>MySQL のデフォルトの分離レベルは、
read <strong></strong>
committed、Oracle のデフォルトの分離レベルは
repeatable<strong> です。同時に、両方ともシリアル化可能なシリアル化されたトランザクション分離レベルをサポートし、最高レベルの読み取り一貫性を実現します。 </strong>
<strong></strong>MySQL は、
innodb ストレージ エンジンの行レベルのロックを持つトランザクションのみをサポートします。オラクルはトランザクションを完全にサポートしています。
<strong></strong>MySQL は、データベースが更新または再起動されるとデータを失います。Oracle は、送信された SQL 操作行をオンラインに書き込みます。オンライン ログファイルはディスクに保存され、いつでも復元できます。
<strong></strong>MySQL は主にテーブル レベルのロックを使用しており、リソース ロックの粒度は非常に大きいです。長い時間 長すぎると、他の
セッション はこのテーブルのデータを変更できなくなります。
エンジン テーブルでは行レベルのロックを使用できますが、行レベルのロック メカニズムはテーブルのインデックスに依存します。テーブルにインデックスがない場合、またはSQL ステートメントにインデックスがない場合は、テーブル レベルのロックが引き続き使用されます。
Oracle は行レベルのロックを使用しており、非常に細かい粒度でリソースをロックします。ロックは必要なリソースのみをロックし、ロックはデータベース内のデータ行に対して行われ、インデックスには依存しません。したがって、Oracle の同時実行性のサポートははるかに優れています。
<strong></strong>MySQL は、バックアップされたデータの一貫性を確保するために論理バックアップ中にデータをロックする必要があり、これは通常のビジネス
dml に影響します。使用してください。Oracle 論理バックアップはデータをロックせず、バックアップされたデータは一貫しています。
<strong></strong>MySQL レプリケーション サーバーの構成は非常にシンプルですが、メイン データベースに問題が発生すると、クラスター データベースで特定のデータが失われる可能性があります。 Cong ライブラリから。手動で切り替える必要があります。
Oracle には、従来のプッシュまたはプルのデータ レプリケーションと、
dataguard<strong> のデュアルマシンまたはマルチマシンの災害復旧メカニズムの両方が備わっています。メイン データベースを使用すると、スタンバイ データベースをメイン データベースに自動的に切り替えることができますが、データ管理はより複雑になります。 </strong>
<strong></strong>MySQL には診断および調整の方法がほとんどなく、主に低速クエリ ログが使用されます。
Oracle には、多くの自動分析を実現できる、成熟したパフォーマンス診断およびチューニング ツールが多数用意されています。
<strong></strong>MySQL ユーザーはホストに関連付けられており、ホストと IP は簡単に偽造できます。
Oracle の権限とセキュリティの概念は比較的伝統的なものです。
<strong></strong>MySQL のパーティション テーブルは成熟しておらず、安定していません。
Oracle のパーティション テーブルおよびパーティション インデックス関数は非常に成熟しており、データベースへのアクセスにおけるユーザー エクスペリエンスを向上させることができます。
<strong></strong>MySQL には管理ツールがほとんどありませんが、同時に、Linux で管理ツールをインストールするには、追加のパッケージのインストールが必要になる場合があります。より複雑。
Oracle には、成熟したコマンド ライン、グラフィカル インターフェイス、Web 管理ツール、および比較的効率的で便利なサードパーティ管理ツールが多数あります。
MySQL は軽量のデータベースで無料ですが、データを復元するサービスはありません。 <strong></strong>Oracle は重量級のデータベースです。有料です。Oracle Corporation は、Oracle データベースに関するあらゆるサービスを提供しています。
以上がMysql と Oracle のいくつかの違いの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。