Cloud with rain
.:G
G:.
0 and 1 serie, black on white
pulled card
myjsp.feelinglinux.com
ver. 1.1.9-4
Hallo, welcome to my world.
Here you can find some stuff about computer science.
<<< Enjoy your visit! >>>
0 and 1 serie, white on black

MySql e attivazione log per query lente

          Scritto: Maryna Pylnyk, 21/01/2017     

Quando abbiamo la necessita' di esaminare un rallentamento della nostra applicazione dovuto a query SQL poco efficaci, possiamo opportunamente configurare il nostro server MySQL per effettuare tale analisi. Esistono diverse modalita' per la configurazione.

File di configurazione "my.cnf"

Mettiamo le seguenti chiavi nel file di configurazione del server MySql my.cnf (/etc/my.cnf):
nella sezione [myslqd]

#chiave per abilitare la modalita' di analisi query lente(0-OFF)
slow-query-log = 1
#chiave per configurare il file dove verranno registrate le query lente 
slow-query-log-file = /tmp/log/mysql/slowQuery.log
#la chiave per configurare il tempo limite oltre il quale le nostre query saranno considerate lente ( in secondi ) 
long_query_time = 2

Cio' significa, che qualsiasi query, la cui esecuzione dura piu' di 2 secondi, sara' registrata nel file /tmp/log/mysql/slowQuery.log (ricordiamoci di creare le cartelle necessarie). Notare che questo modo necessita del restart del server MySQL.
Pubblicita'



Modifica delle variabili globali

Se non avete la possibilita' di riavviare il server MySql, possiamo dinamicamente modificare la configurazione usando le variabili globali:
mysql> show variables like '%slow%';
+---------------------+-----------------------------+
| Variable_name       | Value                       |
+---------------------+-----------------------------+
| log_slow_queries    | OFF                         |
| slow_launch_time    | 2                           |
| slow_query_log      | OFF                         |
| slow_query_log_file | /tmp/log/slowQuery.log      |
+---------------------+-----------------------------+
4 rows in set (0.00 sec)

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.00 sec)

mysql> set global slow_query_log_file = '/database/log/slowQuery.log';
Query OK, 0 rows affected (0.00 sec)


mysql> show variables like '%slow%';
+---------------------+-----------------------------+
| Variable_name       | Value                       |
+---------------------+-----------------------------+
| log_slow_queries    | ON                          |
| slow_launch_time    | 2                           |
| slow_query_log      | ON                          |
| slow_query_log_file | /tmp/log/slowQuery.log      |
+---------------------+-----------------------------+
4 rows in set (0.00 sec)
Se slow_query_log e slow_query_log_file sono variabili globali, la variabile long_query_time ha un doppio ambito ("scope"), globale (GLOBAL) e di sessione (SESSION). Per questo motivo dobbiamo sempre indicare nelle nostre query a quale delle due variabili ci riferiamo:

mysql> show global variables like '%long%';
oppure 
mysql> show session variables like '%long%';

+---------------------------------------------------+----------+
| Variable_name                                     | Value    |
+---------------------------------------------------+----------+
| long_query_time                                   | 4.000000 |
| max_long_data_size                                | 1048576  |
| performance_schema_events_waits_history_long_size | 10000    |
+---------------------------------------------------+----------+
3 rows in set (0.00 sec)

mysql> set global long_query_time = 3;
Query OK, 0 rows affected (0.00 sec)
oppure
mysql> set session long_query_time = 3;
Query OK, 0 rows affected (0.00 sec)

Il parametro long_query_time in questa modalita' puo' essere specificato con la precisione espressa in microsecondi.
Pubblicita'

Le stesse variabili possono essere utilizzate come opzioni quando viene lanciato MySql da riga di comando. Inoltre e' comodo utilizzare questo strumento per il debug della vostra applicazione.

Hai trovato utile questo articolo?
Aiutami a condividerlo o metti un "mi piace".
Grazie mille!


Gli strumenti di condivisione (Google+, Facebook) sono visibili in alto a destra solo dopo aver accettato la policy di utilizzo dei cookie per questo sito.
FAQ - Come faccio a cambiare la mia scelta?

 

Strumenti (myjsp.feelinglinux.com)
Gioco: allenamento con la tastiera Strumenti di codifica/decodifica URI (%-encoding) e Base64 Strumenti di calcolo online per IP e Reti
QUIZ GAME
Quiz game

Cerca @myjsp.feelinglinux.com

Pubblicita'