Heim Datenbank MySQL-Tutorial Wie optimiert man die Leistung von MySQL? Teilen von Optimierungstipps

Wie optimiert man die Leistung von MySQL? Teilen von Optimierungstipps

Sep 22, 2022 pm 01:49 PM
mysql

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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 Sie slow_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
Nach dem Login kopieren
Nun, diese beiden Optionen ermöglichen eine langsame Abfrageprotokollierung und protokollieren alle Abfragen, die länger als eine Sekunde dauern. Wenn Sie Protokolle lieber in einer Tabelle als in einer Datei anzeigen möchten, können Sie Folgendes hinzufügen:

slow_query_log = 1

long_query_time = 1
Nach dem Login kopieren

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'
Nach dem Login kopieren

那么,这两个选项将启用慢查询日志,并记录任何需要超过一秒的查询。如果你喜欢在一个表中而不是在一个文件中查看日志,你可以添加:

rrreee

然后你可以在「slow_log」表中找到你的日志。你可以在那里看到所有执行超过一秒的慢查询的信息。这些信息包括查询的确切执行时间和受影响的行数,以及哪个用户执行的它。

查询优化

在你得到所有的慢查询后,你需要一种方式来优化它们,使它们更快。因此,你可以在查询语句前面加上「explain」关键词,从而获得相关查询的详情信息,例如:explain select * from users where active=1;

Abfrageoptimierung

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 und Einschränkungen: 🎜🎜

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!

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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate 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)

MySQL: Die einfache Datenverwaltung für Anfänger MySQL: Die einfache Datenverwaltung für Anfänger Apr 09, 2025 am 12:07 AM

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: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

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.

So erstellen Sie Navicat Premium So erstellen Sie Navicat Premium Apr 09, 2025 am 07:09 AM

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.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

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: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

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.

So erstellen Sie eine neue Verbindung zu MySQL in Navicat So erstellen Sie eine neue Verbindung zu MySQL in Navicat Apr 09, 2025 am 07:21 AM

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.

So führen Sie SQL in Navicat aus So führen Sie SQL in Navicat aus Apr 08, 2025 pm 11:42 PM

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

Navicat stellt eine Verbindung zu Datenbankfehlercode und Lösung her Navicat stellt eine Verbindung zu Datenbankfehlercode und Lösung her Apr 08, 2025 pm 11:06 PM

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

See all articles