1. 同時実行性 同時実行性は OLTP データベースの最も重要な機能ですが、同時実行性にはリソースの取得、共有、ロックが含まれます。 マイスク: オラクル: 2. 一貫性 オラクル: マイスク: 3. 事務 Oracle は長年にわたりトランザクションを完全にサポートしてきました。 MySQL は、InnoDB ストレージ エンジンの行レベルのロックのみを使用したトランザクションをサポートします。 4. データの永続性 オラクル 5. 提出方法 Oracle はデフォルトでは自動的に送信しないため、ユーザーが手動で送信する必要があります。 6. 論理バックアップ Oracle は論理バックアップ中にデータをロックしないため、バックアップされたデータは一貫性を保ちます。 MySQL の論理バックアップを実行する場合、バックアップされたデータの一貫性を確保するためにデータをロックする必要があり、これはビジネスにおける DML の通常の使用に影響します。 7. ホットバックアップ Oracle には成熟したホット スタンバイ ツールである RMAN があり、これはホット スタンバイ中にユーザーによるデータベースの使用に影響を与えません。バックアップされたデータベースに不整合がある場合でも、アーカイブ ログとオンライン REDO ログを通じて一貫性のある復元が可能です。 8. SQL文の拡張性と柔軟性 MySQL には、limit 関数、一度に複数行のデータを挿入できる insert 関数、from を追加せずに特定の管理データを選択できる select 関数など、SQL 文に対する非常に実用的で便利な拡張機能が多数あります。 IX. コピー Oracle: プッシュまたはプルの従来のデータレプリケーションと、DataGuard のデュアルマシンまたはマルチマシンの災害復旧メカニズムの両方を備えています。メインデータベースに問題が発生した場合、バックアップデータベースをメインデータベースに自動的に切り替えることができますが、構成管理はより複雑になります。 10. パフォーマンス診断 Oracle には、多くの自動分析および診断機能を実装できる、成熟したさまざまなパフォーマンス診断およびチューニング ツールがあります。 awr、addm、sqltrace、tkproof など。 11. 権限とセキュリティ mysql ユーザーはホストに関連付けられているため、意味がないように見えます。また、ホストと IP が偽造されやすくなります。 12. パーティションテーブルとパーティションインデックス 13. 管理ツール 14. テクニカルサポート Oracleに問題がある場合は、カスタマーサービスにお問い合わせください。 mysqの問題を自分で解決する 15. 認可 オラクルの料金 mysq オープンソース - 無料 16. 選択 お金に余裕があれば、Oracle を使用することをお勧めします。 お金はないけどニーズを満たすことができるなら、mysq を使うことをお勧めします。 (Alibaba、Wikipedia などの大規模プロジェクトでも MySQL が使用されており、主に分散ストレージ、キャッシュ、テーブルとデータベースのシャーディングなどのテクノロジーが使用されています) 主に SQL の観点から比較した別の記事を次に示します。 Oracle データベースと MySQL データベースの違いがこの記事の主な内容です。お役に立てれば幸いです。 1. グループ機能の使用ルール MySQL では、グループ関数は SELECT 文で自由に使用できますが、Oracle では、クエリ文にグループ関数がある場合、他の列名はグループ関数によって処理されるか、group by 句内の列である必要があります。そうでない場合は、エラーが報告されます。 例えば: select name, count(money) from user; これは MySQL では正常に動作しますが、Oracle では問題が発生します。 2. 自動成長データ型処理 MYSQL には自動的に増加するデータ型があります。レコードを挿入するときにこのフィールドを操作する必要はなく、データ値は自動的に取得されます。 ORACLE には自動的に増加するデータ型がないため、レコードを挿入するときに、自動的に増加するシーケンス番号を作成し、シーケンス番号の次の値をこのフィールドに割り当てる必要があります。 CREATE SEQUENCE シーケンス番号名 (できればテーブル名 + シーケンス番号タグ) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 最大値はフィールドの長さによって決まります。自動的に増加するシーケンス番号NUMBER(6)が定義されている場合、最大値は999999です。 INSERT ステートメントは、このフィールド値を挿入します: シリアル番号の名前。NEXTVAL 3. シングルクォートの処理 MYSQL では、文字列を囲むのに二重引用符を使用できますが、ORACLE では、文字列を囲むのに一重引用符のみを使用できます。文字列を挿入および変更する前に、一重引用符を置き換える必要があります。一重引用符のすべての出現箇所は、2 つの一重引用符に置き換えられます。 4. ページめくりのためのSQL文の処理 MYSQL でページめくりを処理するための SQL 文は比較的簡単です。LIMIT を使用して開始位置を設定し、その数を記録します。PHP では、SEEK を使用して結果セットの位置を特定することもできます。 ORACLE がページめくりを処理するための SQL 文はかなり複雑です。各結果セットには、その位置を示す ROWNUM フィールドが 1 つだけあり、ROWNUM<100 のみ使用でき、ROWNUM>80 は使用できません。 以下は、分析後の 2 つの ORACLE ページめくり SQL ステートメントの改善です (ID は一意のキーワードのフィールド名です)。 声明1: SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE condition1 ORDER BY condition2) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY condition3; 声明2: SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (select [FIELD_NAME,...] FROM TABLE_NAME WHERE condition1 ORDER BY condition2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY condition3; 5. 長い文字列の処理 ORACLE には、長い文字列を処理するための独自の特別な機能もあります。 INSERT および UPDATE で操作可能な文字列の最大長は、4000 バイト以下です。より長い文字列を挿入する場合は、ORACLE に付属の DBMS_LOB パッケージを使用して、フィールドに CLOB タイプを使用することを検討してください。レコードを挿入または変更する前に、空でないかどうかと長さのチェックを実行する必要があります。空にできないフィールド値と長さを超えるフィールド値では警告が発行され、最後の操作に戻ります。 6. 日付フィールドの処理 MYSQL の日付フィールドは、DATE と TIME に分かれています。ORACLE の日付フィールドには、年、月、日、時、分、秒の情報を含む DATE のみがあります。現在のデータベースのシステム時間は SYSDATE で、秒単位の精度です。または、文字列が日付型に変換されます。関数 TO_DATE('2001-08-01','YYYY-MM-DD') 年-月-日 24 時間: 分: 秒形式 YYYY-MM-DD HH24:MI:SS TO_DATE() 他にも多くの日付形式があります。ORACLE DOC を参照してください。日付フィールド変換文字列関数 TO_CHAR('2001-08-01','YYYY-MM-DD HH24:MI:SS') 日付フィールドの数式は非常に異なります。 MYSQL は、DATE_FIELD_NAME > SUBDATE(NOW(), INTERVAL 7 DAY) を使用して、現在の時刻から 7 日後の日付を検索します。ORACLE は、DATE_FIELD_NAME > SYSDATE - 7 を使用して、現在の時刻から 7 日後の日付を検索します。 現在の時刻を挿入する MYSQL の関数は次のとおりです。NOW() 関数は、現在の日付と時刻を `'YYYY-MM-DD HH:MM:SS' として返します。これは、DATETIME フィールドに直接保存できます。 CURDATE() は今日の日付を 'YYYY-MM-DD' の形式で返し、DATE フィールドに直接保存できます。 CURTIME() は、現在の時刻を 'HH:MM:SS' の形式で返し、TIME フィールドに直接保存できます。例: テーブル名 (フィールド名) の値に挿入 (now()) Oracleの現在の時刻はsysdateです 7. ヌル文字の扱い MYSQL の空でないフィールドには空の内容も含まれますが、ORACLE では空でないフィールドに空の内容が許可されません。 MYSQL の NOT NULL に従って ORACLE テーブル構造を定義すると、データのインポート時にエラーが発生します。そのため、データをインポートする際には、空文字を判定する必要があります。NULL または空文字の場合は、スペースの文字列に変更する必要があります。 8. 文字列のあいまい比較 MYSQL では、%' 文字列 %' のようなフィールド名を使用します。ORACLE でも、%' 文字列 %' のようなフィールド名を使用できますが、この方法ではインデックスを使用できず、高速ではありません。文字列比較関数 instr(フィールド名、' 文字列 ')>0 を使用すると、より正確な検索結果が得られます。 9. プログラムおよび関数では、データベース操作が完了した後に結果セットとポインターを解放するように注意してください。 以下もご興味があるかもしれません:
|
>>: Ubuntu 20.04 IPアドレスを変更する方法の例
目次1. ダウンロード手順2. 環境変数を設定する3. my.iniファイルを設定する4. MySQ...
Linux コンピュータには 2 つの時間があります。1 つはハードウェア時間 (BIOS に記録さ...
1. 監視アーキテクチャ図 2. 実装のアイデアJenkins に Metrics プラグインをイン...
この記事では、Docker+Jenkins の自動ビルドデプロイメントを紹介し、皆さんと共有します。...
公式サイトの説明: コンポーネントを定義する場合、コンポーネントは複数のインスタンスを作成するために...
ブラウザ モジュールの主な機能は、http リクエスト ヘッダーの「User-Agent」の値とブラ...
一般的に、MySQL はデフォルトでさまざまなストレージ エンジンを提供しており、次のように表示され...
1. WEBを理解するWeb ページは主にテキスト、画像、ハイパーリンクなどの要素で構成されていま...
序文フロントエンドプログラミングでは、奇数、偶数などの数値を受け入れることができる nth-chil...
エラーのスクリーンショット例外が発生した場所が見つかりません。解決策: リソースディレクトリにlog...
序文vsftp は使いやすく安全な FTP サーバー ソフトウェアです。システムユーザーまたは仮想ユ...
Vue スキャフォールディングでは、エントリ ファイル main.js の新しい Vue コードに、...
序文Deepin のユーザー インターフェイスは、使用時に非常に見栄えがします。インターフェイス効果...
この記事では、MySQL 8.0.12のインストール方法に関する詳細なチュートリアルを参考までに紹介...
このセクションでは、HTML のリスト要素について学習します。リストは、Web サイトのデザインにお...