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 スペースを節約し、クエリのパフォーマンスを向上させます
フルネーム バッチ キー アクセス:
SQL が補助インデックスを介してテーブル データにアクセスする場合、多数のランダム アクセスがキャッシュに入れられ、MRR インターフェイスに渡されて、シーケンシャル アクセスのためにマージされます。 MMrr
フルネーム Multi Range Read:
統計情報は永続的で、mysqldの再起動後も失われません
explainステートメントはinsert、update、delete、replaceステートメントをサポートし、JSON形式をサポートします
パスワードの有効期限メカニズムを追加しました。有効期限が切れたらパスワードを変更する必要があります。そうしないと無効になるか、サンドボックスモードに入る可能性があります。
パスワードの有効期限メカニズムを追加します。有効期限が切れたらパスワードを変更する必要があります。そうしないと、パスワードが無効になる可能性があります。無効にするか、サンドボックス モードに入ります。ボックス モードでは、より単純な 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 モードを有効にします
前のオプション (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) をご覧ください。