Dieser Artikel beschreibt die langsame MySQL-Abfrageoperation anhand von Beispielen. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Einige MySQL-SQL-Anweisungen werden möglicherweise sehr langsam ausgeführt, was zu einer starken Serverauslastung führen kann. Überprüfen Sie zunächst mithilfe des Top-Befehls, des PS-Befehls usw., ob MySQL die Last verursacht. Geben Sie als Nächstes MySQL ein und verwenden Sie den Befehl „show full processlist“, um die ausgeführten SQL-Anweisungen abzufragen und das Problem zu ermitteln. Verwenden Sie den Befehl „explain“, um den Status anzuzeigen. Suchen Sie abschließend die zu beendende oder zu optimierende SQL-Anweisung Installieren Sie den MariaDB-Dienst auf CentOS7 yum -y installiere MariaDB-Server MariaDB-Devel Langsame Abfrage aktivieren mehr /etc/my.cnf.d/server.cnf [Mariadb] slow_query_log=EIN slow_query_log_file=/usr/local/mysql/data/slow.log lange_Abfragezeit=1 Starten Sie den MariaDB-Dienst systemctl starte mariadb Überprüfen Sie, ob die langsame MySQL-Abfrage aktiviert ist und wie lange die oben genannte Abfrage langsam ist. MariaDB [(keine)]> Variablen wie „%slow_query%“ anzeigen; +---------------------+--------------------------------+ | Variablenname | Wert | +---------------------+--------------------------------+ | slow_query_log | EIN | | slow_query_log_datei | /usr/local/mysql/data/slow.log | +---------------------+--------------------------------+ 2 Zeilen im Satz (0,00 Sek.) MariaDB [(keine)]> Variablen wie „long_query_time“ anzeigen; +-----------------+----------+ | Variablenname | Wert | +-----------------+----------+ | lange Abfragezeit | 1.000000 | +-----------------+----------+ 1 Zeile im Satz (0,00 Sek.) #Wenn Sie langsame Abfragen nicht aktiviert haben, können Sie sie in der Befehlszeile aktivieren mysql> set global slow_query_log=1; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) Testen Sie langsame Abfragen und zeigen Sie Protokolle an MariaDB [(keine)]> wähle sleep(2); +----------+ | schlafen(2) | +----------+ | 0 | +----------+ 1 Zeile im Satz (2,00 Sek.) [root@localhost ~]# mehr /usr/local/mysql/data/slow.log /usr/libexec/mysqld, Version: 5.5.60-MariaDB (MariaDB-Server). gestartet mit: TCP-Port: 0 Unix-Socket: /var/lib/mysql/mysql.sock Zeit-ID-Befehlsargument # Zeit: 180930 23:51:07 # Benutzer@Host: root[root] @ localhost [] # Thread_id: 2 Schema: QC_hit: Nein # Abfragezeit: 2.001017 Sperrzeit: 0.000000 Gesendete Zeilen: 1 Untersuchte Zeilen: 0 SET-Zeitstempel=1538322667; wähle sleep(2); Bestätigen langsamer Abfragen MariaDB [(keine)]> vollständige Prozessliste anzeigen; #Status anzeigen langsame Abfrage läuft +----+------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+-----------------------+----------+ | ID | Benutzer | Host | db | Befehl | Zeit | Status | Info | Fortschritt | +----+------+--------------+------+---------+---------+---------+---------+-----------------------+----------+ | 3 | root | localhost | NULL | Abfrage | 9 | Benutzer sleep | select sleep(10) | 0.000 | | 4 | root | localhost | NULL | Abfrage | 0 | NULL | vollständige Prozessliste anzeigen | 0.000 | +----+------+--------------+------+---------+---------+---------+---------+-----------------------+----------+ 2 Zeilen im Satz (0,00 Sek.) MariaDB [(keine)]> vollständige Prozessliste anzeigen; #Überprüfen Sie den Status. Die langsame Abfrage wurde beendet, aber der Benutzer ist angemeldet. +----+------+-----------+---------+---------+------+---------+------+---------+-----------+-----------+-----------+ | ID | Benutzer | Host | db | Befehl | Zeit | Status | Info | Fortschritt | +----+------+--------------+------+---------+-----------+-----------+-----------+---------------------------+-------------+ | 3 | root | localhost | NULL | Schlaf | 1 | | NULL | 0.000 | | 4 | root | localhost | NULL | Abfrage | 0 | NULL | vollständige Prozessliste anzeigen | 0.000 | +----+------+--------------+------+---------+-----------+-----------+-----------+---------------------------+-------------+ 2 Zeilen im Satz (0,00 Sek.) Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
>>: Beispiel für das Erreichen eines Deckeneffekts mit dem WeChat-Applet
Stellen Sie sich ein Szenario vor, in dem beim En...
1. Schauen wir uns zunächst die Wirkung an Von de...
Experimentelle Umgebung: 1. Drei CentOS 7-Server ...
Inhaltsverzeichnis 1. Installation 1. Einleitung ...
Inhaltsverzeichnis 1. Globale Wache 1. Globale Fr...
In den letzten Tagen habe ich gelernt, wie man Sp...
Hintergrund Für die virtuelle VirtualBox-Maschine...
Vorwort Das Wesen eines Deadlocks ist Ressourcenw...
Inhaltsverzeichnis el-scrollbar Bildlaufleiste el...
Das Linux-System ist ein typisches Mehrbenutzersy...
Dieser Artikel stellt Nginx ausführlich vor, von ...
Es wird empfohlen, zunächst mit dem Befehl sudo s...
Inhaltsverzeichnis Voraussetzungen DNS-Domänennam...
Vorwort Als ich kürzlich an einem Projekt arbeite...
Der Standard-SSH-Remote-Port in Linux ist 22. Man...