


Wie optimiert man die Leistung von MySQL? Teilen von Optimierungstipps
Wenn es um die Optimierung der Datenbankleistung geht, ist es am wichtigsten, die richtige auszuwählen. Sie sollten entscheiden, ob Ihre Anwendung eine relationale oder nicht relationale Datenbank erfordert. Selbst innerhalb eines Genres stehen Ihnen mehrere Optionen zur Auswahl. Neben relationalen Datenbanken finden Sie möglicherweise Oracle, MySQL, SQL Server und PostgreSQL. Andererseits führten nicht-relationale Datenbanken MongoDB, Cassandra und CouchDB ein.
Vielleicht möchte ich Ihnen vorschlagen, eine nicht relationale Datenbank für eine schnellere Lese-/Schreibleistung zu verwenden. Mit einigen Verbesserungen und Optimierungen können Sie jedoch eine relationale Datenbank über ihre bekannten Grenzen hinaus erweitern. Deshalb stelle ich Ihnen in diesem Artikel einige Tipps vor, um Ihre MySQL-Datenbank schneller zu machen.
Wenn Sie sich konkret fragen, warum Sie MySQL verwenden sollten, ist die Antwort einfach, denn es ist kostenlos, Open Source und in der PHP-Community sehr beliebt, während Oracle aufgrund seines hohen Preises nicht weit verbreitet ist. Andere Optionen sind weniger beliebt als MySQL.
- MySQL-Server-Konfiguration:
Nun, zunächst sollten Sie wissen, wo sich die Konfigurationsdateien abhängig von Ihrem Betriebssystem befinden. Auf Linux-Systemen befindet es sich in „/etc/mysql/my.cnf“.
Jetzt ist es an der Zeit, Ihre Engine InnoDB und MyISAM auszuwählen. Um die Auswahl zu erleichtern, sollten Sie wissen, dass InnoDB in MySQL 5.5 zur Standard-Engine wurde, da es „Sperren auf Zeilenebene, Fremdschlüssel und Transaktionen“ unterstützt, während MyISAM keine der genannten Funktionen unterstützt, was es selten nützlich macht modernes Anwendungsprogramm.
Nachdem Sie die richtige Engine ausgewählt haben, ist es an der Zeit, einige Konfigurationsvariablen in der my.cnf-Datei festzulegen.
max_connection-Variable:
max_connection-Variable stellt die Anzahl der von der Anwendung zugelassenen Verbindungen dar. Der Standardwert beträgt 151 Verbindungen. Wenn Sie jedoch die Fehlermeldung „MySQL-Fehler, zu viele Verbindungen…“ erhalten, können Sie diese Zahl problemlos erhöhen Im Speicher Ihres Servers teilt diese Variable MySQL mit, wie viele Gigabyte es verwenden kann. Diese Variable ist nützlich, wenn Sie große Blobs in der Datenbank speichern. Sie können dies auf 80–90 % des Serverspeichers festlegen. Wenn Ihr Server also über 16 GB Arbeitsspeicher verfügt, können Sie ihn auf 14 GB einstellen.
最大连接数 = 170
innodb_io_capacity-Variable:
Diese Variable teilt MySQL mit, wie viele Eingabe-/Ausgabeoperationen es verwenden kann. Dies hängt von Ihrer Festplatte ab. Beispielsweise ist ein einzelnes 7200-RPM-Laufwerk auf 200 I/O begrenzt, während eine Unternehmens-SSD-Festplatte auf 50.000 I/O begrenzt ist. Sie können die Ein-/Ausgabewerte ganz einfach über die Befehlszeile Ihres Betriebssystems finden und die Variablen auf 90 % der verfügbaren E/A festlegen, damit MySQL nie zu viele E/A-Vorgänge verwendet.
innodb_buffer_pool_size = 14GB
query_cache_limit- und query_cache_size-Variablen:
MySQL unterstützt auch das Zwischenspeichern von Daten im Speicher, wir können uns jedoch nicht darauf als Caching-System verlassen, da MySQL jedes Mal, wenn Ihr Programm Daten in die Datenbanktabelle schreibt, den gesamten Abfragecache neu aufbaut für den Tisch. Wenn Ihr Programm also stark ausgelastet ist, ist der MySQL-Cache völlig nutzlos. In diesem Fall ist es besser, beide Variablen auf 0 zu setzen, um den Overhead des MySQL-Cache zu sparen. Stattdessen können Sie etwas wie Redis verwenden, um den Cache zu verwalten .
innodb_io_capacity = 21000
Protokoll langsamer Abfragen:
Das Protokoll langsamer Abfragen zeigt Ihnen, welche Ihrer Abfragen Ihren definierten Schwellenwert überschreiten, sodass Sie nicht mehr raten müssen, welche Abfrage langsamer ist.
Zuerst müssen Sieslow_query_log
in Ihrer Konfigurationsdatei aktivieren. Öffnen Sie auf dem Linux-Server „/etc/mysql/my.cnf“ oder die entsprechende Datei auf Ihrem System. Und fügen Sie hinzu: query_cache_limit = 0
query_cache_size = 0
slow_query_log = 1 long_query_time = 1
Dann finden Sie Ihre Protokolle in der Tabelle „slow_log“. Dort sehen Sie Informationen zu allen langsamen Abfragen, die länger als eine Sekunde ausgeführt wurden. Zu diesen Informationen gehören die genaue Ausführungszeit und die Anzahl der von der Abfrage betroffenen Zeilen sowie der Benutzer, der sie ausgeführt hat. slow_query_log
。在Linux服务器中,打开 「/etc/mysql/my.cnf」或者你系统上同等的文件。
并添加:
log_output = 'TABLE'
那么,这两个选项将启用慢查询日志,并记录任何需要超过一秒的查询。如果你喜欢在一个表中而不是在一个文件中查看日志,你可以添加:
rrreee然后你可以在「slow_log」表中找到你的日志。你可以在那里看到所有执行超过一秒的慢查询的信息。这些信息包括查询的确切执行时间和受影响的行数,以及哪个用户执行的它。
查询优化
在你得到所有的慢查询后,你需要一种方式来优化它们,使它们更快。因此,你可以在查询语句前面加上「explain」关键词,从而获得相关查询的详情信息,例如:explain select * from users where active=1;
Nachdem Sie alle Ihre langsamen Abfragen erhalten haben, benötigen Sie eine Möglichkeit, sie zu optimieren, um sie schneller zu machen. Daher können Sie das Schlüsselwort „explain“ vor der Abfrageanweisung hinzufügen, um detaillierte Informationen über die relevante Abfrage zu erhalten, zum Beispiel: explain select * from user where active=1;
"explain" Schlüsselwort Kann Ihnen dabei helfen, zu definieren, welche Indizes die Abfrage trifft und wie viele Zeilen abgefragt werden müssen, um die Daten zu erhalten. Anhand dieser Informationen können Sie erkennen, ob Sie weitere Indizes erstellen oder die Datenbanktabellen neu strukturieren müssen.
Denormalisierung ist der Prozess der Verbesserung der Leseleistung durch Hinzufügen oder Gruppieren redundanter Daten. Wenn Sie beispielsweise eine Tabelle „Produkte“ und eine Tabelle „Kategorie“ haben und jedes Mal, wenn Sie die Tabelle „Produkte“ abfragen, müssen Sie auch den „Kategorienamen“ jedes Produkts abrufen. In diesem Fall können Sie „join“ verwenden, um „category_name“ abzurufen. Dies bedeutet jedoch, dass jedes Mal, wenn der Benutzer die Produktseite öffnet, eine komplexe Join-Abfrage ausgeführt wird. Daher können Sie erwägen, der Tabelle „Produkte“ einen „Kategorienamen“ hinzuzufügen. Trotz der redundanten Daten lohnt sich die Steigerung der Leseleistung.
Die Nicht-Normalisierungsmethode kann dazu führen, dass der „Kategoriename“ in der Tabelle „Produkt“ veraltet ist. Sie müssen also eine „Fremdschlüssel“-Einschränkung definieren, müssen sich aber darüber im Klaren sein, dass ein „Fremdschlüssel“ die Schreibleistung etwas verlangsamt, da MySQL die Einschränkung überprüfen muss, bevor die Daten geschrieben werden. Es ist also immer Ihre Aufgabe, die beste Wahl zu treffen.
Englische Originaladresse: https://codeburst.io/database-performance-optimization-8d8407808b5b
Übersetzungsadresse: https://learnku.com/mysql/t/71571
[Verwandte Empfehlungen: MySQL-Video Anleitung】
Das obige ist der detaillierte Inhalt vonWie optimiert man die Leistung von MySQL? Teilen von Optimierungstipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

Schritte zur Durchführung von SQL in Navicat: Verbindung zur Datenbank herstellen. Erstellen Sie ein SQL -Editorfenster. Schreiben Sie SQL -Abfragen oder Skripte. Klicken Sie auf die Schaltfläche Ausführen, um eine Abfrage oder ein Skript auszuführen. Zeigen Sie die Ergebnisse an (wenn die Abfrage ausgeführt wird).

Häufige Fehler und Lösungen beim Anschließen mit Datenbanken: Benutzername oder Kennwort (Fehler 1045) Firewall -Blocks -Verbindungsverbindung (Fehler 2003) Timeout (Fehler 10060) Die Verwendung von Socket -Verbindung kann nicht verwendet werden (Fehler 1042).
