Heim  >  Artikel  >  Datenbank  >  MySQL Advanced 11 – Langsame Abfrage

MySQL Advanced 11 – Langsame Abfrage

黄舟
黄舟Original
2016-12-29 16:50:10995Durchsuche

MySQL zeichnet Abfragen auf, die die angegebene Zeit überschreiten. Wir bezeichnen SQL-Abfrageabfragen, die die angegebene Zeit überschreiten, als langsame Abfragen.

1. Überprüfen Sie das Zeitlimit

show variables like '%long%';

und Sie werden sehen:

+---------------------------------------------------+-----------+
| Variable_name                        | Value     |
+---------------------------------------------------+-----------+
| long_query_time                        | 10.000000 |
| max_long_data_size                     | 1048576   |
| performance_schema_events_waits_history_long_size | 10000     |
+---------------------------------------------------+-----------+


Wenn eine Abfrage long_query_time überschreitet, wird sie als langsame Abfrage bezeichnet.

2. Überprüfen Sie die Startzeit der Datenbank

show status like 'uptime%';

und Sie werden

+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| Uptime                    | 76333 |
| Uptime_since_flush_status | 76333 |
+---------------------------+-------+

3. Überprüfen Sie die Anzahl der Abfrageanweisungen


show status like 'com_Select';
und Sie werden sehen:



+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select    | 1     |
+---------------+-------+

4. Get die Anzahl der Verbindungen


show status like 'connections';
wird angezeigt



+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 2     |
+---------------+-------+

5. Stellen Sie die langsame Abfragezeit ein


set long_query_time = 1;
6. Starten Sie den MySQL-Dienst im abgesicherten Modus und die langsamen Abfragedatensätze werden in das Protokoll geschrieben.


Protokoll langsamer Abfragen aktivieren

Fügen Sie die folgenden Parameter zur MySQL-Konfigurationsdatei hinzu

log-show-queries = D:/MySQL/Log/mysqld-slow-query. log

long-query-time = 5

log-queries-not-using-indexes

Erklärung:

Über den Speicherort der langsamen Abfrageprotokollfunktion: Die Verzeichnisdatei muss über Schreibberechtigungen verfügen. Sie können Einstellungen verwenden, das System gibt eine Standarddatei host_name-show.log an

long_query_time

SQL-Ausführungszeitschwellenwert, der Standardwert beträgt 10 Sekunden

Beachten Sie drei Punkte:

1. Nach dem Festlegen des long_query_time-Schwellenwerts zeichnet die MySQL-Datenbank alle SQL-Anweisungen auf, deren Laufzeit diesen Wert überschreitet, wird jedoch nicht aufgezeichnet, wenn die Laufzeit genau gleich long_query_time ist. Mit anderen Worten, im MySQL-Quellcode wird davon ausgegangen, dass er größer als log_query_time und nicht größer oder gleich ist.

2. Ab MySQL 5.1 wird long_query_time in Mikrosekunden berechnet und zeichnet so die Laufzeit von SQL genau auf.

3. Es wird empfohlen, dass die Zeit nicht zu klein oder zu groß ist, vorzugsweise zwischen 5 und 10 Sekunden. Natürlich können Sie entsprechend Ihrer eigenen Situation entscheiden.

log-queries-not-using-indexes

Wenn die laufende SQL-Anweisung keine Indizes verwendet, zeichnet die MySQL-Datenbank diese SQL-Anweisung auch in der Protokolldatei für langsame Abfragen auf.

Das Obige ist der Inhalt von MySQL Advanced Eleven - Slow Query. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).



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