Heim Datenbank MySQL-Tutorial Leitfaden zur MySQL-Leistungsoptimierung

Leitfaden zur MySQL-Leistungsoptimierung

Nov 24, 2016 am 10:01 AM
mysql mysql性能优化

Das Hauptziel dieses Artikels besteht darin, Ihnen vorzustellen, wie Sie die MySQL-Datenbank regelmäßig analysieren und überprüfen, Tabellen regelmäßig optimieren und einige gängige SQL-Anweisungen optimieren. Dies kann Ihnen dabei helfen, effizienteres SQL in MySQL zu schreiben Entwicklung.

1. Periodische Analysetabelle und Prüftabelle

Die Syntax der Analysetabelle lautet wie folgt:

ANALYZE [LOCAL |. NO_WRITE_TO_BINLOG] TABLE tb1_name [, tbl_name] ...

Die obigen Anweisungen werden verwendet, um die Schlüsselwortverteilung der Tabelle zu analysieren und zu speichern, damit das System sie erhalten kann Genaue statistische Informationen, die es SQL ermöglichen, einen korrekten Ausführungsplan zu generieren. Wenn der Benutzer der Meinung ist, dass der tatsächliche Ausführungsplan nicht dem erwarteten Ausführungsplan entspricht, kann das Problem möglicherweise durch Ausführen einer Analysetabelle gelöst werden. Während der Analyse wird die Tabelle mit einer Lesesperre gesperrt. Dies funktioniert für MyISAM-, DBD- und InnoDB-Tabellen.

Zum Beispiel eine Datentabelle analysieren

Tabelle Tabellenname analysieren

Die Syntax von Die Prüftabelle lautet wie folgt:

CHECK TABLE tb1_name]...[option]...option = {QUICK |. EXTENDED} >

Die Funktion der Prüftabelle besteht darin, zu überprüfen, ob eine oder mehrere Tabellen Fehler aufweisen. Bei MyISAM- und InnoDB-Tabellen werden Schlüsselwortstatistiken aktualisiert

CHECK TABLE kann die Ansicht auch auf Fehler überprüfen, z. B. auf eine Tabelle, auf die in der Ansichtsdefinition verwiesen wird und die nicht vorhanden ist.

2. Optimieren Sie die Tabelle regelmäßig

Die Syntax der optimierten Tabelle lautet wie folgt:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tb1_name [, tbl_name]...

Wenn ein großer Teil der Tabelle gelöscht wurde oder wenn eine Tabelle mit Zeilen variabler Länge (eine Tabelle mit VARCHAR, BLOB , oder TEXT-Spalten) wurde Für weitere Änderungen sollte der Befehl OPTIMIZE TABLE zur Tabellenoptimierung verwendet werden. Dieser Befehl kann die Speicherplatzfragmente in der Tabelle zusammenführen und die durch Löschen oder Aktualisieren verursachte Speicherplatzverschwendung beseitigen, aber der Befehl OPTIMIZE TABLE funktioniert nur bei MyISAM-, BDB- und InnoDB-Tabellen.

Zum Beispiel: Tabelle optimieren Tabellenname

Hinweis: Die Tabelle wird während der Ausführung von Analyse, Prüfung und Optimierung gesperrt. Stellen Sie daher sicher, dass Sie entsprechende Vorgänge ausführen, wenn die MySQL-Datenbank nicht ausgelastet ist .

Häufig verwendete SQL-Optimierung

Die SQL-Anweisungen, die wir während der Entwicklung häufig verwenden, sind nichts anderes als INSERT, GROUPBY usw. Wie optimieren wir diese SQL-Anweisungen?

1. Daten in großen Mengen einfügen

Bei Verwendung des Ladebefehls zum Importieren von Daten können entsprechende Einstellungen die Importgeschwindigkeit erhöhen.

Für MyISAM-Speicher-Engine-Tabellen können Sie große Datenmengen auf folgende Weise schnell importieren

Der Code lautet wie folgt:

ALTER TABLE tb1_name DISABLE KEYS;
loading the data
ALTER TABLE tb1_name ENABLE KEYS;
Nach dem Login kopieren

TASTEN DEAKTIVIEREN und ENABLE KEYS werden verwendet, um die Aktualisierung nicht eindeutiger Indizes für MyISAM-Tabellen zu aktivieren oder zu deaktivieren. Beim Importieren einer großen Datenmenge in eine nicht leere MyISAM-Tabelle kann das Festlegen dieser beiden Befehle die Effizienz des Imports verbessern.

Beim Importieren einer großen Datenmenge in eine leere MyISAM-Tabelle werden standardmäßig zuerst die Daten importiert und dann der Index erstellt. Der Index muss nicht festgelegt werden.

Daten in Datei „/home/mysql/text_txt“ in Tabellentext laden

Für Tabelle vom Typ InnoDB: This Die Methode kann die Effizienz des Datenimports nicht verbessern, es gibt jedoch mehrere Möglichkeiten, Tabellen vom Typ InnoDB zu optimieren.

1. Da Tabellen vom Typ InnoDB in der Reihenfolge der Primärschlüssel gespeichert werden, kann das Sortieren der importierten Daten in der Reihenfolge der Primärschlüssel die Effizienz der importierten Daten effektiv verbessern.

2. Führen Sie SET UNIQUE_CHECKS=0 aus, bevor Sie Daten importieren, um die Eindeutigkeitsüberprüfung zu deaktivieren. Führen Sie nach Abschluss des Imports SET UNIQUE_CHECKS=1 aus, um die Eindeutigkeitsüberprüfung wiederherzustellen, was die Effizienz des Imports verbessern kann.

3. Wenn die Anwendung die automatische Übermittlung verwendet, wird empfohlen, SET AUTOCOMMIT=0 vor dem Import auszuführen, um die automatische Übermittlung zu deaktivieren. Nachdem der Import abgeschlossen ist, führen Sie SET AUTOCOMMIT=1 aus, um die automatische Übermittlung zu aktivieren kann auch die Importeffizienz verbessern.

INSERT-Anweisungen optimieren

Beim Durchführen von Daten-INSERT können Sie die folgenden Möglichkeiten zur Optimierung in Betracht ziehen

1 Wenn viele Zeilen gleichzeitig von einem Kunden eingefügt werden, versuchen Sie es Um INSERT-Anweisungen mehrerer Wertetabellen zu verwenden, verkürzt diese Methode die Verbindung, das Herunterfahren und andere Verbrauchsvorgänge zwischen dem Client und der MySQL-Datenbank erheblich und macht die Effizienz schneller als eine einzelne INSERT-Anweisung, die separat ausgeführt wird.

Zum Beispiel:

i

nsert into test values(1,2)
insert into test values(3,4)
insert into test values(5,6)
Nach dem Login kopieren

Ändern Sie die obigen drei Sätze wie folgt: Einfügen in Testwerte(1,2),(3,4),(5 ,6)……

2. Wenn Sie viele Zeilen von verschiedenen Clients einfügen, können Sie mit der INSERT DELAYED-Anweisung eine höhere Geschwindigkeit erzielen.

DELAYED bedeutet, dass die INSERT-Anweisung tatsächlich in die Speicherwarteschlange gestellt und nicht tatsächlich auf die Festplatte geschrieben wird. Dies ist genau das Gegenteil other Der Benutzer fügt nach dem Lesen und Schreiben in die Tabelle ein.

3. Speichern Sie Indexdateien und Datendateien auf verschiedenen Datenträgern

4. Wenn Sie Stapeleinfügungen durchführen, können Sie die Geschwindigkeit erhöhen, indem Sie den Wert der Variablen „bulk_insert_buffer_size“ erhöhen Für MyISAM-Tabellen verwenden.

5. Wenn Sie eine Tabelle aus einer Textdatei laden, verwenden Sie LOAD DATA INFILE. Dies ist normalerweise etwa 20-mal schneller als die Verwendung vieler Einfügeanweisungen.

Das Obige sind einige andere Dinge, die bei der MySQL-Leistungsoptimierung beachtet werden müssen. Lassen Sie uns sie kombinieren, um die Leistung von MySQL voll auszunutzen.


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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen PHPs Fähigkeiten zur Verarbeitung von Big-Data-Strukturen May 08, 2024 am 10:24 AM

Fähigkeiten zur Verarbeitung von Big-Data-Strukturen: Chunking: Teilen Sie den Datensatz auf und verarbeiten Sie ihn in Blöcken, um den Speicherverbrauch zu reduzieren. Generator: Generieren Sie Datenelemente einzeln, ohne den gesamten Datensatz zu laden, geeignet für unbegrenzte Datensätze. Streaming: Lesen Sie Dateien oder fragen Sie Ergebnisse Zeile für Zeile ab, geeignet für große Dateien oder Remote-Daten. Externer Speicher: Speichern Sie die Daten bei sehr großen Datensätzen in einer Datenbank oder NoSQL.

Wie optimiert man die MySQL-Abfrageleistung in PHP? Wie optimiert man die MySQL-Abfrageleistung in PHP? Jun 03, 2024 pm 08:11 PM

Die MySQL-Abfrageleistung kann durch die Erstellung von Indizes optimiert werden, die die Suchzeit von linearer Komplexität auf logarithmische Komplexität reduzieren. Verwenden Sie PreparedStatements, um SQL-Injection zu verhindern und die Abfrageleistung zu verbessern. Begrenzen Sie die Abfrageergebnisse und reduzieren Sie die vom Server verarbeitete Datenmenge. Optimieren Sie Join-Abfragen, einschließlich der Verwendung geeigneter Join-Typen, der Erstellung von Indizes und der Berücksichtigung der Verwendung von Unterabfragen. Analysieren Sie Abfragen, um Engpässe zu identifizieren. Verwenden Sie Caching, um die Datenbanklast zu reduzieren. Optimieren Sie den PHP-Code, um den Overhead zu minimieren.

Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Wie verwende ich MySQL-Backup und -Wiederherstellung in PHP? Jun 03, 2024 pm 12:19 PM

Das Sichern und Wiederherstellen einer MySQL-Datenbank in PHP kann durch Befolgen dieser Schritte erreicht werden: Sichern Sie die Datenbank: Verwenden Sie den Befehl mysqldump, um die Datenbank in eine SQL-Datei zu sichern. Datenbank wiederherstellen: Verwenden Sie den Befehl mysql, um die Datenbank aus SQL-Dateien wiederherzustellen.

Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Wie füge ich mit PHP Daten in eine MySQL-Tabelle ein? Jun 02, 2024 pm 02:26 PM

Wie füge ich Daten in eine MySQL-Tabelle ein? Mit der Datenbank verbinden: Stellen Sie mit mysqli eine Verbindung zur Datenbank her. Bereiten Sie die SQL-Abfrage vor: Schreiben Sie eine INSERT-Anweisung, um die einzufügenden Spalten und Werte anzugeben. Abfrage ausführen: Verwenden Sie die Methode query(), um die Einfügungsabfrage auszuführen. Bei Erfolg wird eine Bestätigungsmeldung ausgegeben.

So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 So beheben Sie den Fehler „mysql_native_password nicht geladen' unter MySQL 8.4 Dec 09, 2024 am 11:42 AM

Eine der wichtigsten Änderungen, die in MySQL 8.4 (der neuesten LTS-Version von 2024) eingeführt wurden, besteht darin, dass das Plugin „MySQL Native Password“ nicht mehr standardmäßig aktiviert ist. Darüber hinaus entfernt MySQL 9.0 dieses Plugin vollständig. Diese Änderung betrifft PHP und andere Apps

Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Wie verwende ich gespeicherte MySQL-Prozeduren in PHP? Jun 02, 2024 pm 02:13 PM

So verwenden Sie gespeicherte MySQL-Prozeduren in PHP: Verwenden Sie PDO oder die MySQLi-Erweiterung, um eine Verbindung zu einer MySQL-Datenbank herzustellen. Bereiten Sie die Anweisung zum Aufrufen der gespeicherten Prozedur vor. Führen Sie die gespeicherte Prozedur aus. Verarbeiten Sie die Ergebnismenge (wenn die gespeicherte Prozedur Ergebnisse zurückgibt). Schließen Sie die Datenbankverbindung.

Wie erstelle ich eine MySQL-Tabelle mit PHP? Wie erstelle ich eine MySQL-Tabelle mit PHP? Jun 04, 2024 pm 01:57 PM

Das Erstellen einer MySQL-Tabelle mit PHP erfordert die folgenden Schritte: Stellen Sie eine Verbindung zur Datenbank her. Erstellen Sie die Datenbank, falls sie nicht vorhanden ist. Wählen Sie eine Datenbank aus. Tabelle erstellen. Führen Sie die Abfrage aus. Schließen Sie die Verbindung.

Der Unterschied zwischen Oracle-Datenbank und MySQL Der Unterschied zwischen Oracle-Datenbank und MySQL May 10, 2024 am 01:54 AM

Oracle-Datenbank und MySQL sind beide Datenbanken, die auf dem relationalen Modell basieren, aber Oracle ist in Bezug auf Kompatibilität, Skalierbarkeit, Datentypen und Sicherheit überlegen, während MySQL auf Geschwindigkeit und Flexibilität setzt und eher für kleine bis mittlere Datensätze geeignet ist. ① Oracle bietet eine breite Palette von Datentypen, ② bietet erweiterte Sicherheitsfunktionen, ③ ist für Anwendungen auf Unternehmensebene geeignet; ① MySQL unterstützt NoSQL-Datentypen, ② verfügt über weniger Sicherheitsmaßnahmen und ③ ist für kleine bis mittlere Anwendungen geeignet.

See all articles