ホームページ  >  記事  >  データベース  >  Mysql8とmysql5.7の違いは何ですか

Mysql8とmysql5.7の違いは何ですか

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-06-07 09:34:544350ブラウズ

この記事では、Mysql8 と mysql5.7 の違いを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

Mysql8とmysql5.7の違いは何ですか

1. NoSql ストレージ

Mysql はバージョン 5.7 から NoSQL ストレージ機能を提供しています。この部分は 8.0 で修正されましたが、これは実際には実用的ではありません非常にまれに使用されます

Mysql8とmysql5.7の違いは何ですか

2. 非表示のインデックス

非表示のインデックス機能は、パフォーマンスのデバッグに非常に役立ちます。8.0 では、インデックスを非表示にしたり表示したりできます。インデックスが非表示になると、クエリ オプティマイザーによって使用されなくなります

Mysql8とmysql5.7の違いは何ですか

#つまり、インデックスを非表示にしてデータベースへの影響を観察できます。パフォーマンスが低下した場合は、このインデックスが有効であることを意味するため、「表示を元に戻す」だけで済みますが、データベースのパフォーマンスが変わらない場合は、このインデックスが大きすぎるため削除してもよいことを意味します。 Index

ALTER TABLE t ALTER INDEX i INVISIBLE;

インデックスの表示を復元するための構文は次のとおりです。

ALTER TABLE t ALTER INDEX i VISIBLE;

インデックスが非表示の場合、showindex コマンドの出力概要から、表示されている属性値が表示されていることがわかります。インデックスは No

**注:** インデックスが非表示になっている場合でも、そのコンテンツは通常のインデックスと同様にリアルタイムで更新されます。この機能自体は、最適化とデバッグに特に使用されます。インデックスの存在はデータの挿入、更新、削除機能に影響を与えるため、インデックスを長時間使用する場合は強制終了する方が良いです。

3. 永続性の設定

MySQL 設定は、実行時に SET GLOBAL コマンドを使用して変更できますが、この変更は一時的にのみ有効になり、データベースは次回起動時に構成ファイルから読み取られます。

MySQL 8 では、SET PERSIST コマンドが追加されました。例:

SET PERSIST max_connections = 500;

MySQL は、このコマンドの設定をデータ ディレクトリの mysqld-auto.cnf ファイルに保存し、これを読み取ります。ファイルを開き、その中の設定を使用してデフォルトの設定ファイルを上書きします。

4.UTF-8 エンコーディング

MySQL 8 以降、データベースのデフォルトのエンコーディングは、すべての絵文字を含む utf8mb4 に変更されます。長年にわたり、私たちはデフォルトのラテン文字の変更を忘れてコード化けの問題が発生することを恐れて、MySQL を使用する際のコーディングには注意してきました。これからはもう心配ありません。

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 は必要ありません。

「クラスの生徒数」の表があるとします。

Mysql8とmysql5.7の違いは何ですかクラスのサイズを小規模から大規模までランク付けしたい場合は、次のようにします。次のようにウィンドウ関数を使用できます:

Mysql8とmysql5.7の違いは何ですか説明: ここで w という名前のウィンドウを作成し、stu_count フィールドをソートするように指定してから、w に対して Rank() メソッドを実行します。 select 句に結果を入力します。出力はランク フィールドです。

この機能は Oracle11g の新機能でもあり、最適化において非常に重要な役割を果たします。

関連する推奨事項: 「

mysql チュートリアル

以上がMysql8とmysql5.7の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。