違い: 1. Oracle データベースは軽量のオブジェクト リレーショナル データベース管理システムであり、mysql は軽量のオープンソース リレーショナル データベース管理システムです; 2. Oracle にはユーザーを検証するための多くのパラメーターがあり、強力なセキュリティが備わっています。 mysql にはユーザーを認証するためのパラメータが 3 つしかなく、セキュリティが弱いです。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
oracle と mysql の違いは何ですか
1. タイプとコストの違い
oracle データベースはオブジェクト関係 データベース管理システム (ORDBMS)、高耐久データベース。これは、Oracle RDBMS または単に Oracle と呼ばれることが多く、データベースです。
MySQL は、オープンソースのリレーショナル データベース管理システム (RDBMS) であり、軽量のデータベースです。これは世界で最も使用されている RDBMS であり、複数のデータベースへのマルチユーザー アクセスを提供するサーバーとして実行されます。これはオープンソースの無料データベースです。
2. ストレージの違い
Oracle と比較すると、MySQL にはテーブル スペース、ロール管理、スナップショット、シノニムとパッケージ、および自動ストレージ管理がありません。
3. セキュリティの違い
MySQL はユーザーの認証にユーザー名、パスワード、場所という 3 つのパラメーターを使用しますが、Oracle はユーザー名、パスワード、設定ファイル、ローカル認証、外部認証、高度なセキュリティ強化など。
4. トランザクションのサポート
MySQL は innodb ストレージ エンジンの行レベルのロックの下でのみトランザクションをサポートできますが、Oracle はトランザクションを完全にサポートします
5. パフォーマンスの違いDiagnostics
MySQL には診断チューニング方法が少なく、主に遅いクエリ ログが含まれています。
Oracle には、さまざまな成熟したパフォーマンス診断およびチューニング ツールがあり、多くの自動分析および診断機能を実現できます。たとえば、awr、addm、sqltrace、tkproof などです。
6. 管理ツールの違い
MySQL には管理ツールが少なく、Linux で管理ツールをインストールするには、追加のインストールが必要になる場合があります。パッケージ (phpmyadmin など) には、ある程度の複雑さがあります。
Oracle には、成熟したコマンド ライン、グラフィカル インターフェイス、Web 管理ツール、および多くのサードパーティ管理ツールがあり、管理が非常に便利で効率的です。
7. 同時実行性の違い
MySQL は主にテーブル レベルのロックを使用しており、リソース ロックの粒度は非常に大きいため、セッションがテーブルを長時間ロックすると、他のセッションはデータを更新できなくなります。この表では。 InnoDB エンジン テーブルは行レベルのロックを使用できますが、この行レベルのロック メカニズムはテーブルのインデックスに依存します。テーブルにインデックスがない場合、または SQL ステートメントがインデックスを使用しない場合でも、テーブル レベルのロックは依然として有効です。使用済み。
Oracle は行レベルのロックを使用しており、リソース ロックの粒度は非常に小さいです。SQL で必要なリソースのみをロックし、ロックはデータベース内のデータ行に対して行われ、インデックスには依存しません。したがって、Oracle の同時実行性のサポートははるかに優れています。
8. データの保存の永続性
MySQL は、データベースが更新または再起動されるとデータを失います。Oracle は、送信された SQL 操作行をオンライン ログ ファイルに書き込み、ディスク上に保存するまで保持します。いつでも復元できます
9. トランザクション分離レベルの違い
MySQL はコミットされた読み取りの分離レベルであるのに対し、Oracle は反復可能な読み取りの分離レベルであり、どちらもシリアル化可能をサポートしています。文字列: 行化されたトランザクション分離レベル。最高レベルの読み取り一貫性を実現できます。各セッションが送信された後でのみ、他のセッションが送信された変更を確認できるようになります。
Oracle は、UNDO 表スペースにマルチバージョンのデータ ブロックを構築することで読み取りの一貫性を実現します。各セッションのクエリ中に、対応するデータ ブロックが変更されると、Oracle はこのセッションの UNDO 表スペースにそのデータ ブロックを構築します。古いデータクエリ中のブロック
MySQL には、マルチバージョン データ ブロックを構築するための Oracle のようなメカニズムがなく、コミットされた読み取りの分離レベルのみをサポートします。 1 つのセッションがデータを読み取るとき、他のセッションはデータを変更できませんが、テーブルの最後にデータを挿入できます。セッションがデータを更新するときは、他のセッションがデータにアクセスできないように排他ロックを追加する必要があります。
10. 操作上のいくつかの違い
①主キー
Mysql は通常、自動拡張タイプを使用します。テーブルを作成するときは、テーブルの主キーを次のように指定するだけで済みます。 auto_increment. レコードを挿入するとき, レコードの主キー値を指定する必要はありません, Mysql は自動的に拡張します;
Oracle には自動拡張タイプがありません. 主キーは通常シーケンスを使用します.レコードを挿入する場合は、フィールドにシーケンス番号の次の値を支払うだけです。; ORM フレームワークにはネイティブの主キー生成戦略のみが必要なだけです。
②一重引用符の処理
MYSQL では二重引用符を使用して文字列をラップできますが、ORACLE では一重引用符のみを使用して文字列をラップできます。文字列を挿入または変更する前に、一重引用符を置換する必要があります。つまり、出現する一重引用符をすべて 2 つの一重引用符に置き換えます。
③ページ送り SQL ステートメントの処理
MYSQL はページ送り SQL ステートメントの処理が比較的簡単です。LIMIT を使用して開始位置とレコード番号を設定します。ORACLE はページ送りの処理がより複雑です。 SQL ステートメントを変換します。
④ null 文字の処理
MYSQL の空でないフィールドには空のコンテンツも含めることができますが、ORACLE で空でないフィールドが定義されている場合、空のコンテンツは許可されません。
⑤文字列のあいまい比較
MYSQL では '% string%' のようなフィールド名が使用されます。ORACLE では '% string%' のようなフィールド名も使用できますが、この方法では使用できません。インデックスの使用は高速ではありません。
推奨学習: mysql ビデオ チュートリアル
以上がOracleとmysqlの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。