相違点は次のとおりです: 1. MySQL はトランザクションを自動的に送信し、Oracle はトランザクションを手動で送信します。 2. 分離レベルでは、MySQL は「コミットされた読み取り」であり、Oracle は「反復読み取り」です。 3. MySQL は「読み取り」です。 Oracle は軽量で無料ですが、Oracle は高負荷であり、有料です。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql と oracle の違い
(1) トランザクションの送信
MySQL のデフォルトこれは自動的に送信されますが、Oracle はデフォルトでは自動的に送信しません。ユーザーは手動で送信する必要があります。commit; コマンドを記述するか、コミット ボタンをクリックする必要があります。
(2) ページング クエリ
MySQL SQL文に直接「select... from ...where...limit x, y」を記述する方法です。limitを使用するとページングが実現できます。
一方、 Oracle は疑似列 ROWNUM と埋め込み Set クエリを使用する必要があります
(3) トランザクション分離レベル
MySQL は読み取りコミットの分離レベルですが、Oracle は分離レベルです。行ベースのトランザクション分離レベルは、最高レベルの
読み取り一貫性を実現できます。各セッションが送信された後でのみ、他のセッションが送信された変更を確認できるようになります。 Oracle は、UNDO 表スペースにマルチバージョンのデータ ブロックを構築することで読み取りの一貫性を実現します。各セッション
クエリ中に、対応するデータ ブロックが変更されると、Oracle はこのセッションの UNDO 表スペースにそのデータ ブロックを構築します。古いデータクエリ中のブロック
MySQL には、マルチバージョン データ ブロックを構築するための Oracle のようなメカニズムがなく、コミットされた読み取りの分離レベルのみをサポートします。 1 つのセッションがデータを読み取るとき、他のセッションはデータを変更できませんが、テーブルの最後にデータを挿入できます。セッションがデータを更新するときは、排他ロックを追加する必要があり、他のセッションはデータにアクセスできません
(4) トランザクションのサポート
MySQL は行レベルです。 innodb ストレージ エンジンのトランザクションはロック状態でのみサポートされ、Oracle はトランザクションを完全にサポートします
(5) データ保存の耐久性
MySQL は次の場合に更新または再起動されます。データベースが更新されます。データは失われます。Oracle は、送信された SQL 操作行をオンライン ログ ファイルに書き込み、ディスクに保存します。いつでも復元できます。
(6) 同時実行
MySQL は主にテーブル レベルのロックを使用しており、リソース ロックの粒度は非常に大きいため、セッションがテーブルを長時間ロックすると、他のセッションはこのテーブルのデータを更新できなくなります。
InnoDB エンジン テーブルは行レベルのロックを使用できますが、この行レベルのロック メカニズムはテーブルのインデックスに依存します。テーブルにインデックスがない場合、または SQL ステートメントがインデックスを使用しない場合、テーブルレベルのロックは引き続き使用されます。
Oracle は行レベルのロックを使用しており、リソース ロックの粒度は非常に小さく、SQL で必要なリソースのみがロックされ、ロックはデータベース内のデータ行に対して行われ、インデックスには依存しません。したがって、Oracle の同時実行性のサポートははるかに優れています。
(7) 論理バックアップ
バックアップされたデータの一貫性を確保するには、MySQL 論理バックアップ中にデータをロックする必要があります。これは、ビジネスでの通常の dml の使用に影響します。 Oracle は論理バックアップ中にデータをロックせず、バックアップ データは一貫しています
(8) レプリケーション
MySQL: レプリケーション サーバーの構成はシンプルですが、メイン データベースに問題がある場合、クラスタ データベースは一定量のデータを失う可能性があります。また、プレックス ライブラリをメイン ライブラリに手動で切り替える必要があります。
Oracle: 従来のプッシュまたはプルのデータ レプリケーションと、Dataguard のデュアルマシンまたはマルチマシンの災害復旧メカニズムの両方があり、メイン データベースに問題が発生した場合、スタンバイ データベースが自動的にメイン データベースに切り替わります。データベースを構築できますが、構成管理が複雑です。
(9) パフォーマンス診断
MySQL には診断および調整方法がほとんどなく、主に低速クエリ ログが使用されます。
Oracle には、さまざまな成熟したパフォーマンス診断およびチューニング ツールがあり、多くの自動分析および診断機能を実現できます。たとえば、awr、addm、sqltrace、tkproof などです。
(10) 権限とセキュリティ
MySQL ユーザーはホストに関連付けられていますが、これには意味がないと思われます。偽造されやすい ホストと IP にチャンスがあります。
Oracle の権限とセキュリティの概念は比較的伝統的であり、非常に満足のいくものです。
(11) パーティション テーブルとパーティション インデックス
MySQL のパーティション テーブルはまだ成熟しておらず、安定していません。
Oracle のパーティション テーブルおよびパーティション インデックス機能は非常に成熟しており、データベースへのアクセスのユーザー エクスペリエンスを向上させることができます。
(12) 管理ツール
MySQL 管理ツールはいくつかありますが、Linux で管理ツールをインストールするには、追加のパッケージ (phpmyadmin など) のインストールが必要になる場合があります。ある種の複雑さ。
Oracle には、成熟したコマンド ライン、グラフィカル インターフェイス、Web 管理ツール、および多くのサードパーティ管理ツールが用意されており、管理が非常に便利で効率的です。
(13) 最も重要な違い
MySQL は軽量のデータベースであり、無料ですが、データを復元するサービスはありません。
Oracle は高耐久データベースであり、有料ですが、Oracle では Oracle データベースに関するあらゆるサービスを提供しています。
【関連する推奨事項: mysql ビデオ チュートリアル ]
以上がmysqlとoracleの間に違いはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。