この記事では、Mysql8 と mysql5.7 の違いを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
Mysql はバージョン 5.7 から NoSQL ストレージ機能を提供しています。この部分は 8.0 で修正されましたが、これは実際には実用的ではありません非常にまれに使用されます
非表示のインデックス機能は、パフォーマンスのデバッグに非常に役立ちます。8.0 では、インデックスを非表示にしたり表示したりできます。インデックスが非表示になると、クエリ オプティマイザーによって使用されなくなります
#つまり、インデックスを非表示にしてデータベースへの影響を観察できます。パフォーマンスが低下した場合は、このインデックスが有効であることを意味するため、「表示を元に戻す」だけで済みますが、データベースのパフォーマンスが変わらない場合は、このインデックスが大きすぎるため削除してもよいことを意味します。 Index
ALTER TABLE t ALTER INDEX i INVISIBLE;
インデックスの表示を復元するための構文は次のとおりです。
ALTER TABLE t ALTER INDEX i VISIBLE;
インデックスが非表示の場合、showindex コマンドの出力概要から、表示されている属性値が表示されていることがわかります。インデックスは No
**注:** インデックスが非表示になっている場合でも、そのコンテンツは通常のインデックスと同様にリアルタイムで更新されます。この機能自体は、最適化とデバッグに特に使用されます。インデックスの存在はデータの挿入、更新、削除機能に影響を与えるため、インデックスを長時間使用する場合は強制終了する方が良いです。
3. 永続性の設定
MySQL 8 では、SET PERSIST コマンドが追加されました。例:
SET PERSIST max_connections = 500;
MySQL は、このコマンドの設定をデータ ディレクトリの mysqld-auto.cnf ファイルに保存し、これを読み取ります。ファイルを開き、その中の設定を使用してデフォルトの設定ファイルを上書きします。
4.UTF-8 エンコーディング
5. 共通テーブル式
SELECT t1.*, t2.* FROM (SELECT col1 FROM table1) t1, (SELECT col2 FROM table2) t2;
CTE を使用すると、次のように記述できます:
WITH t1 AS (SELECT col1 FROM table1), t2 AS (SELECT col2 FROM table2) SELECT t1.*, t2.* FROM t1, t2;
このようにすると、レベルとエリアがより明確に表示され、変更を加えるときにどの部分を変更すればよいかがより明確になります。
この機能は、多くのレポート シナリオで非常に役立ち、mysql 最適化の非常に重要な機能でもあります。
1.235 ウィンドウ関数
MySQL の最も批判されている機能の 1 つは、rank() 関数がないことです。クエリ内でランキングを達成する必要がある場合、@ 変数を次のように記述する必要があります。手。しかし、MySQL 8.0 以降、MySQL にはウィンドウ関数と呼ばれる新しい概念が追加されており、これを使用していくつかの新しいクエリ メソッドを実装できます。
ウィンドウ関数は、SUM() や COUNT() などの集計関数に似ていますが、複数行のクエリ結果を 1 行にマージするのではなく、結果を複数行に戻します。つまり、ウィンドウ関数には GROUP BY は必要ありません。
「クラスの生徒数」の表があるとします。
クラスのサイズを小規模から大規模までランク付けしたい場合は、次のようにします。次のようにウィンドウ関数を使用できます:
説明: ここで w という名前のウィンドウを作成し、stu_count フィールドをソートするように指定してから、w に対して Rank() メソッドを実行します。 select 句に結果を入力します。出力はランク フィールドです。
この機能は Oracle11g の新機能でもあり、最適化において非常に重要な役割を果たします。
関連する推奨事項: 「
mysql チュートリアル以上がMysql8とmysql5.7の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。