Mysql5.5&Mysql5.6&Mysql5.7の特性

黄舟
リリース: 2017-02-07 11:13:32
オリジナル
1217 人が閲覧しました

Mysql5.1 と比較した Mysql5.5 の機能

パフォーマンスの向上

  • デフォルトの InnoDB プラグイン エンジン。コミット、ロールバック、クラッシュ回復機能があり、ACID と互換性があります。

  • 行レベルのロック (一貫した非ロック読み取り MVCC)。

  • テーブルとインデックスはテーブルスペースに保存され、テーブルのサイズは無制限です。

  • 動的 (主キー クエリによる IO を回避するための主キー キャッシュ メモリ) および圧縮 (データとインデックスの圧縮をサポート) 行形式をサポートします。

  • InnoDB プラグイン ファイル形式 Barracuda は、テーブル圧縮をサポートし、ストレージを節約し、メモリ ヒット レートを提供し、テーブルの切り捨てを高速化します。

  • 元の InnoDB には UndoSegment が 1 つだけあり、最大 1023 の同時実行をサポートしていましたが、現在は 128 のセグメントがあり、128K の同時実行をサポートしています (同様に、高い同時実行によって引き起こされるトランザクションのロールバックを解決するため)。

  • Innodb_thread_concurrency のデフォルトは 0 で、同時スレッド数は無制限です。特定のアプリケーションに応じて最適な値を設定できます。

  • Innodb_io_capacity は、更新されるダーティ ページの数を動的に調整して、大規模なバッチ更新中に更新されるダーティ ページに対応できないことによって引き起こされるパフォーマンス低下の問題を改善できます。デフォルト: 200、ハードディスクの IOPS に関連します。

  • CPU のマルチコア処理能力を最大限に活用して、innodb_read_io_threads しきい値: 1 ~ 64 innodb_write_io_threads しきい値: 1 ~ 64 をデータベースの読み取り/書き込み比率に応じて柔軟に設定できます。マルチ CPU および高性能ストレージ デバイスのパフォーマンスはサポートされていません。

  • ダーティページを適応的にリフレッシュ

  • ホットデータはより長く存続します

  • バッファプールの複数のインスタンス: innodb_buffer_pool_instances パラメータにより innodb_buffer_pool インスタンスの数が増加し、ミューテックスの競合とバッファ プールの過熱が大幅に軽減されます。

  • Linux での非同期 IO

  • グループ送信を再サポート

安定性の向上

  • 半同期レプリケーションをサポート。

  • リレーログの自己修復機能を追加しました。

  • クラッシュリカバリ。

  • 挿入ソートの中間データ構造として赤黒ツリーを導入し、時間の複雑さを大幅に軽減し、回復時間を短縮します。

  • スレッドプールグループキューイングと電流制限

Mysql5.5と比較したMysql5.6の機能

  • デフォルトパラメータの変更

  • Back_logキュー

  • を完全にサポートテキストインデックス

  • オンライン DDL の作成、変更、ドロップをサポートします

  • テーブルの作成時にテーブルスペースの場所を指定できます

    create table external (x int unsigned not null 主キー)data directory = '/volumes/external1/data';

  • 新規パラメータ innodb_page_size を追加すると、ページ サイズを設定できます

  • 統合された memcached API により、API を使用して SQL ではなく innodb テーブルに直接アクセスできます (SQL 解析とクエリ最適化のコストを削減します)

  • innodb 読み取り専用トランザクション、TRX_ID フィールドを設定する必要はありません

  • 内部データ構造のオーバーヘッドを削減し、読み取りビューを削減します

  • 依然として非読み取り専用トランザクションのみ TRX_ID が必要です

innodb の改善点

  • innodb テーブルスペースのオンライン移行 (TransportableTablespaces)

  • undo LOG はシステムテーブルスペースから独立して外部に出力可能

  • REDO LOG は 512G まで拡張可能

  • innodb バックグラウンドスレッドに依存しない

opティマイザーの改善

  • エンジン層でデータを直接フィルタリングして、セカンダリ テーブルのリターンを回避できます

    BP スペースを節約し、クエリのパフォーマンスを向上させます

  • BKA
  • フルネーム バッチ キー アクセス:

    SQL が補助インデックスを介してテーブル データにアクセスする場合、多数のランダム アクセスがキャッシュに入れられ、MRR インターフェイスに渡されて、シーケンシャル アクセスのためにマージされます。 MMrr

    フルネーム Multi Range Read:

  • BKA アルゴリズム適用後、MRR インターフェースをシーケンシャルアクセスとしてランダムアクセスで使用し、テーブルのデータを取得します。顺Capyles はランダムアクセスが多い。補助インデックスを介して大量のデータを取得する場合、磁気ヘッドは前後にシークする必要がなく、ページを 1 回読み取るだけで済み、innodb の線形先読み機能がより有効に活用されます。 (毎回、連続する 64 ページが事前に読み込まれます)。
  • 統計情報は永続的で、mysqldの再起動後も失われません

    explainステートメントはinsert、update、delete、replaceステートメントをサポートし、JSON形式をサポートします

  • サブクエリ最適化の改善。
  • Mysql5.5 5.6と比較した機能
  • セキュリティ

ユーザーテーブルmysql.userのプラグインフィールドは、デフォルト値はmysql_old_passwordではなくmysql_native_passwordです。古いパスワード形式はサポートされなくなりました。
  • パスワードの有効期限メカニズムを追加しました。有効期限が切れたらパスワードを変更する必要があります。そうしないと無効になるか、サンドボックスモードに入る可能性があります。

  • パスワードの有効期限メカニズムを追加します。有効期限が切れたらパスワードを変更する必要があります。そうしないと、パスワードが無効になる可能性があります。無効にするか、サンドボックス モードに入ります。ボックス モードでは、より単純な SSL セキュリティ アクセス構成が提供され、デフォルトの接続では SSL 暗号化が使用されます。

  • 柔軟性

  • MySQL データベースは、バージョン 5.7.8 以降、JSON のサポートも提供します。

    • リレーショナルデータベースと非リレーショナルデータベースの利点を持ちながら、構造化データと非構造化データを混合して保存できます

    • 完全なトランザクションサポートを提供できます

    • 生成されたカラムはMySQLに導入された新機能です5.7 の機能、いわゆる生成列は、データベース内のこの列が他の列から計算されることです

    • 使いやすさ

    MySQL 5.7 より前では、ユーザーが間違った SQL ステートメントを入力して Ctrl+C を押した場合ただし、SQL ステートメントの実行を「終了」すると、現在のセッションも終了しますが、MySQL 5.7 ではこの直感に反する側面が改善され、セッションを終了しなくなりました。

    • MySQL 5.7 は実行中の SQL を説明できるため、DBA が実行に長時間かかるステートメントを分析するのに非常に役立ちます。

    • sys スキーマは、MySQL 5.7.7 で導入されたシステム ライブラリであり、一連のビュー、関数、ストアド プロシージャが含まれています。このプロジェクトは、MySQL の使いやすさに重点を置いています。

    • 例: データベース内の冗長インデックスを表示する方法、未使用のインデックスを取得する方法、フル テーブル スキャンを使用して SQL ステートメントを表示する方法。

    • 可用性

    オンライン設定 コピーされたフィルタリングルール MySQL を再起動する必要はなくなりました。変更が完了したら、SQLthread を停止するだけです。

    • バッファプールのサイズをオンラインで変更します。

    • オンライン DDL MySQL 5.7 は、インデックスの名前変更と varchar のサイズの変更をサポートしています。以前のバージョンでは、どちらの操作もインデックスまたはテーブルの再構築が必要でした。

    • オンラインで GTID をオンにする 以前のバージョンでは、オンラインで GTID をオンにすることがサポートされていなかったため、ユーザーが下位バージョンのデータベースを GTID をサポートするデータベース バージョンにアップグレードしたい場合は、まずデータベースを閉じる必要があります。 GTID モードで起動するため、アップグレードが特に面倒になります。

    • パフォーマンス

    一時テーブルのパフォーマンスが向上しました。

      現在のセッションで表示される一時テーブル。
    • MySQL 5.7 は、読み取り専用トランザクションへのトランザクション ID の割り当ての回避、読み取り専用トランザクションへのロールバック セグメントの割り当ての回避、ロック競合の削減などの方法により、読み取り専用トランザクションのコストを最適化し、データベースの全体的なパフォーマンスを向上させます。

      接続処理を高速化します。

      MySQL 5.7 より前では、変数 (THD、VIO) の初期化操作は接続受信スレッドで完了していましたが、接続受信スレッドの負荷を軽減し、接続処理速度を向上させるために、これらのタスクが作業スレッドに送信されるようになりました。この最適化は、短い接続を頻繁に確立するアプリケーションに非常に役立ちます。

    • レプリケーションパフォーマンスの向上 (マルチスレッドスレーブ (MTS) をサポート)

      MySQL のデフォルト構成は、ライブラリレベルの並列レプリケーションです。MySQL 5.7 の並列レプリケーション機能を最大限に活用するには、スレーブを使用する必要があります。 -Parallel-type は LOGICAL_CLOCK として設定されます

      マルチソースレプリケーションをサポートします

    • デフォルトで STRICT_TRANS_TABLES モードを有効にします

    • OnLY_FULL_GROUP_ BY モードを実装します。より複雑な機能がサポートされ、有効になっていますデフォルトで有効になるその他の SQL モードには、NO_ENGINE_SUBSTITUTION が含まれます。
    • デフォルトパラメータの変更

      デフォルトのバイナリログ形式は ROW 形式に調整されます
    • その後の操作は次のとおりです。 ABORT_SERVER に調整されました
    • 前のオプション (binlog_error_action=IGNORE_ERROR) では、エラーが発生して binlog を書き込めない場合、mysql-server はエラーをエラー ログに記録し、binlog 機能を強制的にオフにします。 binlog を記録せずに実行を続けるため、スレーブ ライブラリはメイン ライブラリの binlog を取得できなくなります。

    • mysql がクラッシュした場合に binlog セキュリティを有効にする

    インストールが異なります

    • mysql_install_db。インスタンスの初期化を完了するには、mysqld --initialize に変更することをお勧めします。datadir が指すターゲット ディレクトリにデータ ファイルが既に存在する場合、[ERROR] Aborting;

      が発生します。
    • 初期化中に --initial-insecure が追加された場合、空のパスワードを持つ root@localhost アカウントが作成されます。それ以外の場合は、パスワードのある root@localhost アカウントが作成され、パスワードがログに直接書き込まれます。 -エラー ログ ファイル; 新規ユーザー ログイン後すぐにパスワードを変更する必要があります。変更しないと作業を続行できません。

    上記は Mysql5.5&Mysql5.6&Mysql5.7 の機能の内容です。さらに関連する内容については、PHP 中国語 Web サイト (m.sbmmt.com) をご覧ください。




    関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート