Heim  >  Artikel  >  Datenbank  >  Ausführliche Erklärung, wie man das langsame Abfrageprotokoll in MySQL aktiviert

Ausführliche Erklärung, wie man das langsame Abfrageprotokoll in MySQL aktiviert

小云云
小云云Original
2018-01-17 09:40:451491Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Aktivieren des langsamen Abfrageprotokolls in MySQL vorgestellt. Der Herausgeber findet sie recht gut, daher werde ich sie jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

1.1 Einführung

Durch die Aktivierung des langsamen Abfrageprotokolls kann MySQL Abfragen aufzeichnen, die die angegebene Zeit überschreiten. Durch das Auffinden und Analysieren von Leistungsengpässen kann die Datenbank besser optimiert werden . Systemleistung.

1.2 Melden Sie sich bei der Datenbank an, um


[root@localhost lib]# mysql –uroot

Da kein Passwort festgelegt ist, wenn Sie ein Passwort haben , gehen Sie zu mysql –uroot –p, um eine Verbindung herzustellen. Passwort

1.2.1 Geben Sie MySql ein, um zu prüfen, ob die langsame Abfrage aktiviert ist


mysql> show variables like 'slow_query%';

+---------------------+--------------------------------------------+

| Variable_name    | Value                   |

+---------------------+--------------------------------------------+

| slow_query_log   | OFF                    |

| slow_query_log_file | /application/mysql/data/localhost-slow.log |

+---------------------+--------------------------------------------+

2 rows in set (0.00 sec)

Parameterbeschreibung:

  1. slow_query_log langsamer Abfrage-Aktivierungsstatus AUS nicht aktiviert EIN ist aktiviert

  2. slow_query_log_file Der Speicherort, an dem sich das langsame Abfrageprotokoll befindet gespeichert (für dieses Verzeichnis sind die Schreibberechtigungen des laufenden MySQL-Kontos erforderlich. Im Allgemeinen auf das Datenspeicherverzeichnis von MySQL eingestellt)

1.2.2 Überprüfen Sie das Zeitlimit für langsame Abfragen


mysql> show variables like 'long%';

+-----------------+-----------+

| Variable_name  | Value   |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set (0.00 sec)

long_query_time Abfrage, wie viele Sekunden die Aufzeichnung dauert. Standardmäßig 10 Sekunden geändert in 1 Sekunde

1.3 Änderungsmethode 1: (nicht empfohlen)

Methode 1: Vorteile vorübergehend aktivieren. Langsame Abfrage, kein Neustart der Datenbank erforderlich. Nachteile: Die langsame MySQL-Abfrage schlägt beim Neustart fehl.

Empfehlung: Entsprechend den Geschäftsanforderungen ist dies der Fall Es wird empfohlen, das zweite zu verwenden. Das erste kann vorübergehend verwendet werden.

Der Wert von slow_query_log ist standardmäßig AUS. Dies bedeutet, dass das langsame Abfrageprotokoll deaktiviert ist und durch Festlegen des Werts von slow_query_log aktiviert werden kann, wie gezeigt Unten: Ob das langsame Abfrageprotokoll aktiviert werden soll, 1 bedeutet ein, 0 bedeutet aus.

1.3.1 Überprüfen Sie, ob die langsame Abfrage aktiviert ist


mysql> show variables like '%slow_query_log%';

+---------------------+--------------------------------------------+

| Variable_name    | Value                   |

+---------------------+--------------------------------------------+

| slow_query_log   | OFF                    |

| slow_query_log_file | /application/mysql/data/localhost-slow.log |

+---------------------+--------------------------------------------+

2 rows in set (0.01 sec)

Ändern Sie die Eingabeanweisung (sie funktioniert nach dem Neustart nicht mehr). , es wird empfohlen, es in /etc zu ändern. /my.cnf Änderungen werden dauerhaft wirksam)


mysql> set global slow_query_log=1;

Query OK, 0 rows affected (0.11 sec)

1.3.2 Überprüfen Sie es erneut


mysql> show variables like '%slow_query_log%';

+---------------------+--------------------------------------------+

| Variable_name    | Value                   |

+---------------------+--------------------------------------------+

| slow_query_log   | ON                     |

| slow_query_log_file | /application/mysql/data/localhost-slow.log |

+---------------------+--------------------------------------------+

2 rows in set (0.00 sec)

1.4 Änderungsmethode 2: (empfohlen)

MySql langsame Abfrage ändern Viele Leute kennen die my nicht. cnf-Pfad. Sie können find verwenden, um

zu finden. Hinweis: Mein MySQL ist in /etc/my.cnf (normalerweise hier)


[root@localhost log]# find / -type f -name "my.cnf"

/application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf

/application/mysql-5.5.51/mysql-test/suite/federated/my.cnf

/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf

/application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf

/etc/my.cnf  ###(一般都是这里)

kompiliert 1.4.1.1 Änderung


[root@localhost log]# vim /etc/my.cnf

Suchen Sie [mysqld] und fügen Sie


slow_query_log =1

slow_query_log_file=/application/mysql/data/localhost-slow.log

long_query_time = 1
Parameterbeschreibung:

  1. slow_query_log langsamer Abfrageöffnungsstatus 1 ist aktiviert

  2. slow_query_log_file Der Speicherort, an dem das langsame Abfrageprotokoll gespeichert wird

  3. long_query_time-Abfrage überschreitet die Anzahl der Datensätze in Sekunden. Die Standardeinstellung von 10 Sekunden wurde in 1 Sekunde geändert.

MySQL nach der Änderung neu starten

1.5 Anzeigen und testen

1.5.1.1 Eine langsame Testabfrage einfügen


mysql> select sleep(2);

+----------+

| sleep(2) |

+----------+

|    0 |

+----------+

1 row in set (2.00 sec)

1.5.1.2 Sehen Sie sich das langsame Abfrageprotokoll an


[root@localhost data]# cat /application/mysql/data/localhost-slow.log

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time         Id Command  Argument

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time         Id Command  Argument

/application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time         Id Command  Argument

# Time: 170605 6:37:00

# User@Host: root[root] @ localhost []

# Query_time: 2.000835 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0

SET timestamp=1496615820;

select sleep(2);

1.5.1.3 Überprüfen Sie, wie viele langsame Abfragen es über MySQL-Befehle gibt


mysql> show global status like '%Slow_queries%';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Slow_queries | 1   |

+---------------+-------+

1 row in set (0.00 sec)

1.6 Protokollanalysetool mysqldumpslow

Wenn Sie in einer Produktionsumgebung Protokolle manuell analysieren, SQL suchen und analysieren möchten, ist dies der Fall Offensichtlich eine mühsame Aufgabe. MySQL bietet das Protokollanalysetool mysqldumpslow

Verwandte Empfehlungen:


Konfiguration und Verwendung im Zusammenhang mit MySQL Slow Query Log

Der Unterschied zwischen normalen und langsamen Abfrageprotokollen in MySQL

Einführung in den langsamen MySQL-Abfragevorgang zur MySQL-Optimierung

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man das langsame Abfrageprotokoll in MySQL aktiviert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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