Heim > Datenbank > MySQL-Tutorial > Hauptteil

Mysql5.5&Mysql5.6&Mysql5.7-Versionen

黄舟
Freigeben: 2017-02-07 11:13:32
Original
1206 Leute haben es durchsucht

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 aktivieren
  • Eine komplexere Funktionsunterstützung ist für den ONLY_FULL_GROUP_BY-Modus implementiert und wird auch standardmäßig aktiviert

Andere standardmäßig aktivierte SQL-Modi umfassen NO_ENGINE_SUBSTITUTION.
  • Änderungen in Standardparametern

  • Das Standard-Binlog-Format wird an das ROW-Format angepasst

  • Der Standard-Binlog-Fehlervorgang wird an ABORT_SERVER angepasst

    Wenn unter der vorherigen Option (binlog_error_action=IGNORE_ERROR) ein Fehler auftritt und das Binlog nicht geschrieben werden kann, zeichnet der MySQL-Server den Fehler im auf Fehlerprotokoll und erzwungenes Ausschalten der Binlog-Funktion führt dazu, dass der MySQL-Server weiterhin im Modus ohne Binlog-Aufzeichnung läuft, was dazu führt, dass die Slave-Bibliothek das Master-Binlog nicht mehr abrufen kann

Binlog-Sicherheit aktivieren, wenn MySQL abstürzt

  • Slave_net_timeout standardmäßig reduzieren >

    Die Installation ist anders.
  • mysql_install_db wird nicht mehr empfohlen. Es wird empfohlen, zu mysqld --initialize zu wechseln, um die Instanzinitialisierung abzuschließen. Wenn im Zielverzeichnis, auf das datadir verweist, bereits Datendateien vorhanden sind, wird „[ERROR] Aborting;

    “ 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).




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!