最大の変更点は、MYSQL 5.7 と比較して、MYSQL 8 ではデータ ディクショナリのアトミック性が保証されていることです。データ テーブルに対して DDL 操作を実行するときは、FRM ファイルと Idb ファイルに依存できなくなるため、常にパニックを感じます。これらの変更のうち、「シリアル化されたディクショナリ情報」と呼ばれる重要な変更があります。
MYSQL 5 より前。MYSQL はシャットダウン時にFRMファイルを読み取り、テーブル構造を表示します。 MYSQL 8 にはそのような機能はなくなり、ツールセットは実際には長い間オフラインになっていたため、MYSQL 8 ではデータ形式ファイルを読み取る新しい方法が導入されました。
このツールは ibd2sdi
ibd2sdi を使用すると、システム起動時にデータのテーブル構造を読み取り、json
形式で出力できます。
ディクショナリ テーブルは MYSQL 8 では表示できません。ディクショナリ テーブルを表示する必要がある場合は、MYSQL のコンパイル時にデバッグ パラメータを追加し、特別なコマンドを実行する必要があります。データを表示します。
なぜこれを行うのか? 主な理由は、オリジナルの MYSQL 5. の保存方法です。
最初はツールを通じて SDI の情報を見ましたが、SDI は正確には何をもたらしますか?
1 DDL 操作を実行すると、非トランザクション ストレージによって引き起こされる不整合が発生します
2 DDL 操作が失敗した場合の安全なクラッシュ
3 DDL がアトミックではないため、コピーという困難な問題を回避します
4 テーブル構造の拡張が難しいという問題
5 SDI キャッシュを追加しました、メタデータ キャッシュを追加することでデータ クエリを高速化し、LRU を通じて関連する CACHE を管理します。
同時に、これは欠点でもあります。 frm ファイルに直接書き込むのではなく、ストレージ、undo ログ、redo ログを書き換える必要がある
#上の図も 8.0 で新しく追加された機能です。テーブルのステータスを直接読み取りますが、mysql 8.014 以降のバージョンでは、上記のパラメーターを追加すると、読み取りテーブルのステータスがキャッシュから読み取られます。キャッシュを更新するには、チャレンジ有効期限を渡すか、テーブルを分析します。
以上がMYSQL8 の新機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。