Heim  >  Artikel  >  Datenbank  >  MySQL-Praxis für langsame Abfrageprotokolle (Grafik- und Textanalyse)

MySQL-Praxis für langsame Abfrageprotokolle (Grafik- und Textanalyse)

WBOY
WBOYnach vorne
2022-09-14 17:28:022457Durchsuche

Empfohlenes Lernen: MySQL-Video-Tutorial

1. Übersicht

Das langsame Abfrageprotokoll von MySQL ist ein von MySQL bereitgestellter Protokolldatensatz. Er wird verwendet, um aufzuzeichnen, dass die Antwortzeit in MySQL den Schwellenwert (long_query_time, Einheit) überschreitet : Sekunden) SQL-Anweisung. Standardmäßig startet MySQL keine langsame Abfrageprotokollierung. In diesem Artikel wird kurz vorgestellt, wie Sie langsame Abfrageprotokolle aktivieren und wie Sie mysqldumpslow zum Analysieren langsamer Abfragen verwenden.

2. Einstellungen für das Protokoll langsamer Abfragen

Vorübergehend das Protokoll für langsame Abfragen aktivieren (fehlgeschlagen nach dem Neustart) set global slow_query_log = off ; Das war's.

Vorübergehender kritischer Punkt für langsame Abfragezeit. Jede Abfragezeit, die über diesem kritischen Punkt liegt, wird im Protokoll für langsame Abfragen aufgezeichnet (Neustart ungültig).

Erklärung:

Sie können sehen, dass ich es auf „Datei“ eingestellt habe, was bedeutet, dass mein langsames Abfrageprotokoll durch „Datei“ wiedergegeben wird. Der Standardwert ist „Keine“. Wenn es sich um eine Tabelle handelt, handelt es sich um die langsamen Abfrageinformationen wird in mysql in der slow_log-Tabelle unter der Bibliothek gespeichert. Schritt 2: Fragen Sie den Öffnungsstatus des Protokolls für langsame Abfragen und den Speicherort des Protokolls für langsame Abfragen ab. Langsames Abfrageprotokoll Dateipfad

lange_Abfragezeit: Abfragen, die die Anzahl der Sekunden überschreiten, werden in das Protokoll geschrieben

log_queries_not_using_indexes Wenn der Wert auf EIN gesetzt ist, werden alle Abfragen aufgezeichnet, die keine Indizes verwenden (aktivieren Sie dies während der Ausführung).

3. Überprüfen Sie das Format der Protokollspeicherung

4. Aktivieren Sie langsame Protokolle dauerhaft. Ändern Sie my.cnf. Fügen Sie den Abschnitt [mysqld] in der Konfigurationsdatei my.cnf hinzu (normalerweise /etc/my.cnf) Die folgenden Parameter.

set global slow_query_log = on;

Unter diesen bedeutet slow_query_log = 1, dass langsame Abfragen aktiviert werden sollen, 0 bedeutet,

slow_query_log_file zu deaktivieren, um den Protokollpfad für langsame Abfragen anzugeben. MySQL benötigt Schreibberechtigungen für den Pfad.

long_query_time = 1 bedeutet, dass Abfragezeit erforderlich ist >= 1 Sekunde Protokolle aufzeichnen, der Standardwert ist 10s

log_queries_not_using_indexes = 1, was bedeutet, dass SQL-Anweisungen aufgezeichnet werden, die keine Indizes verwenden

Nach dem Neustart von MySQL wird /var/lib/mysql/ angezeigt. slow-query.log-Datei.

3. Langsamer Abfragetest

Erstellen Sie eine langsame Abfrage und führen Sie sie aus. Wie folgt:
  • set long_query_time = 1;
    Protokoll für langsame Abfragen
  • Öffnen Sie die Protokolldatei für langsame Abfragen. Sie können sehen, dass die SQL-Anweisung der obigen langsamen Abfrage im Protokoll aufgezeichnet wird.
  • 4. Tool zur Analyse langsamer Abfragen
    set global  log_output = file;
    mysqldumpslow ist MySQLs eigenes Tool zur Analyse langsamer Abfragen. Das Tool ist ein Perl-Skript.

Häufig verwendete Parameter sind wie folgt:

-s:

Sortiermethode, die Werte sind wie folgt

c:

Anzahl der Abfragen

t:

Abfragezeit

l :

Sperrzeit

r:

Zurückgegebene Datensätze

ac: Durchschnittliche Anzahl von Abfragen

al:

Durchschnittliche Sperrzeit

ar: Durchschnittlich zurückgegebene Datensätze

um:

Durchschnittliche Abfragezeit

-t: topN-Abfragen

  • -g: regulärer Ausdruck
  • Holen Sie sich die 5 am häufigsten besuchten SQL-Anweisungen:
  • Top 5 SQL-Anweisungen sortiert nach Zeit
  • show variables like '%quer%';
    sortiert nach Zeit und enthalten „Gefällt mir“-Top-5-SQL-Anweisungen
    $ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log

    五、MySQL 清理slowlog方法

    SET GLOBAL slow_query_log = 'OFF';
    ALTER TABLEmysql.slow_log RENAME mysql.slow_log_drop;
    CREATE TABLE mysql.slow_log LIKEmysql.slow_log_drop;
    SET GLOBAL slow_query_log = 'ON';
    DROP TABLE mysql.slow_log_drop;

    推荐学习:mysql视频教程

Das obige ist der detaillierte Inhalt vonMySQL-Praxis für langsame Abfrageprotokolle (Grafik- und Textanalyse). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen