Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was ist der Unterschied zwischen MySQL8.0 und MySQL5.7?

青灯夜游
Freigeben: 2020-11-30 10:56:38
Original
37354 Leute haben es durchsucht

Unterschied: Der Index von mysql8.0 kann ausgeblendet und angezeigt werden. Er wird vom Abfrageoptimierer nicht verwendet. 3. Von mysql8 Ab 0 wird die Standardkodierung der Datenbank in utf8mb4 geändert, was alle Emoji-Zeichen umfasst.

Was ist der Unterschied zwischen MySQL8.0 und MySQL5.7?

(Empfohlenes Tutorial: MySQL-Video-Tutorial)

Der Unterschied zwischen MySQL8.0 und MySQL5.7 beträgt

1. Kein SQL-Speicher

MySQL bietet Nr SQL ab Version 5.7 Speicherfunktion, Dieser Teil hat in 8.0 einige Änderungen erfahren, die jedoch in der Praxis selten verwendet werden Wenn der Index ausgeblendet ist, wird er vom Abfrageoptimierer nicht verwendet. Dies bedeutet, dass Sie einen Index ausblenden und dann die Auswirkungen auf die Datenbank beobachten können. Wenn die Leistung abnimmt, bedeutet dies, dass der Index wirksam ist „Wiederherstellen“ „Anzeigen“; wenn sich die Datenbankleistung nicht ändert, bedeutet dies, dass der Index zu groß ist und gelöscht werden kann.
Was ist der Unterschied zwischen MySQL8.0 und MySQL5.7?Die Syntax zum Ausblenden eines Index

ALTER TABLE t ALTER INDEX i INVISIBLE;
Nach dem Login kopieren

Die Syntax zum Wiederherstellen der Anzeige des Index ist:

ALTER TABLE t ALTER INDEX i VISIBLE;
Nach dem Login kopieren

Wenn ein Index ausgeblendet ist, können wir aus der Ausgabezusammenfassung des Befehls show index sehen, dass der sichtbare Attributwert des Index Nein ist
Was ist der Unterschied zwischen MySQL8.0 und MySQL5.7?**Hinweis:** Wenn der Index ausgeblendet ist, ist er Der Inhalt wird weiterhin wie ein normaler Index in Echtzeit aktualisiert. Diese Funktion selbst wird speziell zur Optimierung des Debuggens verwendet. Wenn Sie einen Index für längere Zeit ausblenden, ist es besser, ihn zu beenden, da sich die Existenz des Index auf die Einfügung auswirkt 3. Persistenz festlegen

MySQL-Einstellungen finden Sie in Es wird zur Laufzeit über den Befehl SET GLOBAL geändert, diese Änderung wird jedoch nur vorübergehend wirksam und die Datenbank liest beim nächsten Mal aus der Konfigurationsdatei Zeit, wenn es gestartet wird.

MySQL 8 fügt einen neuen SET PERSIST-Befehl hinzu, zum Beispiel:

SET PERSIST max_connections = 500;

MySQL speichert die Konfiguration dieses Befehls in der Datei mysqld-auto.cnf im Datenverzeichnis und die Datei wird als nächstes gelesen Verwenden Sie beim Start die darin enthaltene Konfiguration, um die Standardkonfigurationsdatei zu überschreiben.

4.UTF-8-Kodierung

Ab MySQL 8 wird die Standardkodierung der Datenbank in utf8mb4 geändert, das alle Emoji-Zeichen enthält. Seit vielen Jahren sind wir beim Codieren bei der Verwendung von MySQL vorsichtig, aus Angst, zu vergessen, das Standard-Latein zu ändern und Probleme mit verstümmeltem Code zu verursachen. Von nun an keine Sorgen mehr.

5. Allgemeine Tabellenausdrücke

Komplexe Abfragen verwenden eingebettete Tabellen, zum Beispiel:

SELECT t1.*, t2.* FROM
	 (SELECT col1 FROM table1) t1,
	 (SELECT col2 FROM table2) t2;
Nach dem Login kopieren

Mit CTE können wir so schreiben:
	WITH
	 t1 AS (SELECT col1 FROM table1),
	 t2 AS (SELECT col2 FROM table2)
	SELECT t1.*, t2.* 
	FROM t1, t2;
Nach dem Login kopieren
Auf diese Weise sieht es hierarchischer und regionaler aus. Es ist klarer und klarer zu wissen welcher Teil geändert werden soll, wenn Änderungen vorgenommen werden.

Diese Funktion ist in vielen Berichtsszenarien sehr nützlich und auch eine sehr wichtige Funktion der MySQL-Optimierung.

1.235 Fensterfunktionen

Eine der am meisten kritisierten Funktionen von MySQL ist das Fehlen der rank()-Funktion. Wenn in einer Abfrage eine Rangfolge erreicht werden muss, muss die @-Variable von Hand geschrieben werden. Aber ab 8.0 hat MySQL ein neues Konzept namens Fensterfunktion hinzugefügt, mit dem mehrere neue Abfragemethoden implementiert werden können.

Die Fensterfunktion ähnelt ein wenig einer Aggregatfunktion wie SUM() und COUNT(), führt jedoch nicht mehrzeilige Abfrageergebnisse in einer Zeile zusammen, sondern fügt die Ergebnisse wieder in mehrere Zeilen ein. Mit anderen Worten: Fensterfunktionen erfordern kein GROUP BY.

Angenommen, wir haben eine Tabelle mit der „Anzahl der Schüler in einer Klasse“:

Wenn Sie die Klassengröße von klein nach groß ordnen möchten, können Sie die Fensterfunktion wie folgt verwenden:

Hinweis: Ein Fenster mit dem Namen w wird hier erstellt und legt fest, dass es das Feld stu_count sortiert, dann die Methode rank() für w in der Select-Klausel ausführt und das Ergebnis als Rangfeld ausgibt.
Diese Funktion ist ebenfalls eine neue Funktion von Oracle11g und spielt auch eine sehr wichtige Rolle bei der Optimierung.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter:
Einführung in die Programmierung
! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen MySQL8.0 und MySQL5.7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!