Heim >Datenbank >MySQL-Tutorial >Mysql5.5&Mysql5.6&Mysql5.7-Versionen
Mysql5.5-Funktionen im Vergleich zu Mysql5.1
Leistungsverbesserung
Standard-InnoDB-Plugin-Engine. Es verfügt über Commit-, Rollback- und Crash-Recovery-Funktionen und ist ACID-kompatibel.
Sperre auf Zeilenebene (konsistentes, nicht sperrendes Lese-MVCC).
Tabellen und Indizes werden im Tabellenbereich gespeichert und die Tabellengröße ist unbegrenzt.
Unterstützt dynamische (Primärschlüssel-Cache-Speicher zur Vermeidung von durch Primärschlüsselabfragen verursachten E/A-Vorgängen) und komprimierte (unterstützt Daten- und Indexkomprimierung) Zeilenformate.
InnoDB-Plugin-Dateiformat Barracuda, unterstützt Tabellenkomprimierung, spart Speicherplatz, bietet Speichertrefferrate und schneidet Tabellen schneller ab.
Ursprüngliches InnoDB hatte nur ein UndoSegment, das bis zu 1023 Parallelitäten unterstützte; jetzt verfügt es über 128 Segmente, die 128.000 Parallelität unterstützen (in ähnlicher Weise, um durch hohe Parallelität verursachte Transaktions-Rollbacks zu beheben).
Innodb_thread_concurrency ist standardmäßig 0 und die Anzahl gleichzeitiger Threads ist unbegrenzt. Der optimale Wert kann je nach Anwendung festgelegt werden.
Innodb_io_capacity kann die Anzahl der zu aktualisierenden fehlerhaften Seiten dynamisch anpassen und den Leistungsabfall verbessern, der dadurch entsteht, dass bei großen Batch-Aktualisierungen nicht mit den Aktualisierungen fehlerhafter Seiten Schritt gehalten wird. Standard: 200, bezogen auf die IOPS der Festplatte.
Nutzen Sie die Multi-Core-Verarbeitungsleistung der CPU voll aus. innodb_read_io_threads-Schwellenwert: 1-64 innodb_write_io_threads-Schwellenwert: 1-64 kann flexibel entsprechend dem Lese-/Schreibverhältnis eingestellt werden Die Datenbank soll die Leistung von Multi-CPU- und Hochleistungsspeichergeräten voll ausnutzen. Dynamisches Laden wird nicht unterstützt.
Verschmutzte Seiten adaptiv aktualisieren
Heiße Daten bleiben länger erhalten
Pufferpool mehrerer Instanzen: Die Der Parameter innodb_buffer_pool_instances erhöht die Anzahl der innodb_buffer_pool-Instanzen, wodurch der Mutex-Konflikt und die Überhitzung des Pufferpools erheblich reduziert werden.
Asynchrones IO unter Linux
Re-Support-Gruppeneinreichung
Stabilitätsverbesserung
Unterstützt halbsynchrone Replikation.
Relay Log-Selbstheilungsfunktion hinzufügen.
Crash-Recovery.
Die Einführung eines Rot-Schwarz-Baums als Zwischendatenstruktur für die Einfügungssortierung reduziert die zeitliche Komplexität erheblich und verkürzt die Wiederherstellungszeit.
Thread-Pool-Gruppenwarteschlange und Strombegrenzung
Mysql5.6-Funktionen im Vergleich zu 5.5
Änderungen der Standardparameter
Back_log Queue
Unterstützung des Volltextindex
Unterstützung online DDL erstellen, ändern, löschen
Sie können den Speicherort des Tabellenbereichs beim Erstellen der Tabelle angeben
Tabelle extern erstellen (x int unsigned not null Primary Key)Datenverzeichnis = '/volumes/ external1/data';
Der neue Parameter innodb_page_size kann die Seitengröße festlegen
Integrierte Memcached-API, Sie können die verwenden API für den direkten Zugriff auf die Innodb-Tabelle, nicht auf SQL (Reduzierung der Kosten für SQL-Analyse und Abfrageoptimierung)
Nur-Lese-Innodb-Transaktion, das Feld TRX_ID muss nicht festgelegt werden,
Reduzieren Sie den internen Datenstrukturaufwand und reduzieren Sie die Leseansicht
Nur nicht schreibgeschützte Transaktionen erfordern weiterhin TRX_ID
Innodb-Verbesserungspunkte
Online-Migration des Innodb-Tabellenbereichs (TransportableTablespaces)
Rückgängig-Protokoll kann unabhängig vom Systemtabellenbereich getrennt werden
Redo-Log kann auf maximal 512G anwachsen
Der innodb-Hintergrundthread ist unabhängig
Optimierer Verbesserungen
ICP
Sie können Daten direkt auf der Engine-Ebene filtern, um sekundäre Tabellenrückgaben zu vermeiden
Sparen Sie BP-Speicherplatz und verbessern Sie die Abfrageleistung
BKA
Vollständiger Name Batch-Schlüsselzugriff:
Wenn SQL über den Hilfsindex auf Tabellendaten zugreift, legt es eine große Anzahl von Zufallszugriffen in den Cache und übergibt sie an die MRR-Schnittstelle, um sie in sequentiellen Zugriffen zusammenzuführen.
MRR
Vollständiger Name Multi Range Read:
Nach Anwendung des BKA-Algorithmus wird der Zufallszugriff über die MRR-Schnittstelle mit dem sequentiellen Zugriff zusammengeführt. und dann werden die Daten aus der Tabelle abgerufen.
Ändern Sie eine große Anzahl von Zufallszugriffen in sequentiellen Zugriff. Beim Abrufen einer großen Datenmenge über den Hilfsindex wird die Leistung erheblich verbessert
Der Magnetkopf muss nicht hin und her suchen, die Seite muss nur einmal gelesen werden und die lineare Lesefunktion von innodb Die Funktion „Voraus“ wird besser genutzt (jedes Mal werden 64 aufeinanderfolgende Seiten im Voraus gelesen).
Statistische Informationen sind persistent und gehen nach dem Neustart von mysqld nicht verloren
Die EXPLAIN-Anweisung unterstützt Anweisungen zum Einfügen, Aktualisieren, Löschen und Ersetzen. und unterstützt das JSON-Format
Verbesserung der Unterabfrageoptimierung.
Mysql5.7-Funktionen im Vergleich zu 5.5 5.6
Sicherheit
Die Das Plugin-Feld der Benutzertabelle mysql.user darf nicht leer sein. Der Standardwert ist mysql_native_password, nicht mysql_old_password. Das alte Passwortformat wird nicht mehr unterstützt
Passwort-Ablaufmechanismus hinzufügen. Sie müssen das Passwort nach Ablauf ändern, andernfalls wird es möglicherweise deaktiviert, oder in den Sandbox-Modus wechseln
Passwort-Ablaufmechanismus hinzufügen; , ablaufen Sie müssen das Passwort später ändern, sonst wird es möglicherweise deaktiviert oder wechselt in den Sandbox-Modus.
bietet eine einfachere SSL-Sicherheitszugriffskonfiguration und die Standardverbindung verwendet SSL-Verschlüsselung.
Flexibilität
MySQL-Datenbank bietet ab Version 5.7.8 auch Unterstützung für JSON.
kann strukturierte Daten und unstrukturierte Daten gemischt speichern und bietet die Vorteile sowohl relationaler als auch nicht relationaler Datenbanken, die
bieten kann Vollständige Transaktionsunterstützung
generierte Spalte ist eine neue Funktion, die in MySQL 5.7 eingeführt wurde. Die sogenannte generierte Spalte bedeutet, dass diese Spalte in der Datenbank aus anderen Spalten berechnet wird
Benutzerfreundlichkeit
Vor MySQL 5.7 konnte die Ausführung der SQL-Anweisung beendet werden, wenn der Benutzer eine falsche SQL-Anweisung eingab und Strg+C drückte ", allerdings wird auch die aktuelle Sitzung beendet. MySQL 5.7 hat diese kontraintuitive Funktion verbessert und beendet die Sitzung nicht mehr.
MySQL 5.7 kann ein laufendes SQL erklären, was für DBAs sehr nützlich sein wird, um Anweisungen zu analysieren, deren Ausführung lange dauert.
sys schema ist eine in MySQL 5.7.7 eingeführte Systembibliothek. Sie enthält eine Reihe von Ansichten, Funktionen und gespeicherten Prozeduren. Der Schwerpunkt dieses Projekts liegt auf der Benutzerfreundlichkeit von MySQL.
Zum Beispiel: So zeigen Sie redundante Indizes in der Datenbank an; wie erhalten Sie nicht verwendete Indizes mithilfe vollständiger Tabellenscans?
Verfügbarkeit
Online-Einstellungen Kopierte Filterregeln MySQL muss nicht mehr neu gestartet werden, einfach SQLthread stoppen. Nachdem die Änderung abgeschlossen ist, starten Sie SQLthread.
Ändern Sie die Pufferpoolgröße online.
Online DDL MySQL 5.7 unterstützt das Umbenennen von Indizes und das Ändern der Größe von Varchar. In früheren Versionen erforderten beide Vorgänge eine Neuerstellung des Index oder der Tabelle.
GTID online aktivieren: Da GTID online nicht unterstützt wurde, muss der Benutzer schließen, wenn er die niedrigere Version der Datenbank auf eine Datenbankversion aktualisieren möchte, die GTID unterstützt Die Datenbank wird dann zuerst im GTID-Modus gestartet, was das Upgrade besonders mühsam macht.
Leistung
Leistungsverbesserungen für temporäre Tabellen.
Temporäre Tabellen sind nur in der aktuellen Sitzung sichtbar
Der Lebenszyklus temporärer Tabellen ist die aktuelle Verbindung (MySQL ist heruntergefahren oder neu gestartet, die aktuelle Verbindung endet)
Verbesserungen der schreibgeschützten Transaktionsleistung.
MySQL 5.7 optimiert den Overhead von schreibgeschützten Transaktionen und verbessert die Gesamtleistung der Datenbank, indem es die Zuweisung von Transaktions-IDs für schreibgeschützte Transaktionen vermeidet, keine Rollback-Segmente für schreibgeschützte Transaktionen zuweist und die Sperrkonkurrenz verringert. .
Beschleunigt die Verbindungsverarbeitung.
Vor MySQL 5.7 wurden die Initialisierungsvorgänge von Variablen (THD, VIO) im Verbindungsempfangsthread abgeschlossen. Jetzt werden diese Aufgaben an den Arbeitsthread gesendet, um die Arbeitslast des Verbindungsempfangsthreads zu reduzieren und die Verarbeitung zu verbessern Geschwindigkeit der Verbindung. Diese Optimierung ist sehr nützlich für Anwendungen, die häufig kurze Verbindungen herstellen.
Verbesserung der Replikationsleistung (unterstützt Multithread-Replikation (Multi-Threaded Slaves, als MTS bezeichnet))
Die Standardkonfiguration von MySQL ist die parallele Replikation am Bibliotheksebene. Um die parallele Replikationsfunktion von MySQL 5.7 vollständig nutzen zu können, müssen wir den Slave-Parallel-Typ auf LOGICAL_CLOCK konfigurieren, um die Multi-Source-Replikation zu unterstützen 🎜>
STRICT_TRANS_TABLES-Modus standardmäßig aktivierenBinlog-Sicherheit aktivieren, wenn MySQL abstürzt
Slave_net_timeout standardmäßig reduzieren >
Die Installation ist anders.“ angezeigt
Wenn --initial-insecure während der Initialisierung hinzugefügt wird, wird ein root@localhost-Konto mit einem leeren Passwort erstellt, andernfalls wird ein root@localhost-Konto mit einem Passwort erstellt und das Passwort wird nicht erstellt direkt in die Protokolldatei geschrieben werden. Neue Benutzer müssen ihr Passwort sofort nach der Anmeldung ändern, sonst können sie ihre Arbeit nicht fortsetzen.
Das Obige ist der Inhalt der Funktionen von Mysql5.5, Mysql5.6 und Mysql5.7. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).