Domanda

Mi chiedo che ci sia altro modo di controllare le nostre query lente senza registrare la query lenta.Supponiamo, ho un server ad ottaborly impegnato non può permettersi di registrare molto per salvare memoria e I / OS.Quindi, c'è qualche altro modo disponibile per verificare se ho una query lenta?Lo so, possiamo fare profilazione della query ma ancora non sono sicuro di cosa fare esattamente per identificare quale query è quella che prende la maggior parte del tempo e della memoria.

Ho appena iniziato l'amministrazione di MySQL e non è sicuro di come gestire questo.Qualsiasi orientamento sarà molto apprezzata.

È stato utile?

Soluzione

Se non si desidera abilitare affatto il registro delle query lente, ho un suggerimento

È possibile utilizzare pt-query-digest < / a> su un intervallo di tempo.

L'ho suggerito un paio di volte nella DBA Stackexchange

Se guardi il mio Nov 24, 2011 link , Ho fornito uno script di shell che puoi crontab per lanciare PT -Query-digest .

Dai una prova !!!

Altri suggerimenti

È possibile eseguire la seguente dichiarazione in un ciclo in uno script che attiva l'istruzione ogni 10 secondi per esempio.

mysql -e 'SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where time>10 and command<>"Sleep"'

Puoi personalizzarlo per darti più o meno informazioni a seconda della query che si rilascia.

mysql> desc INFORMATION_SCHEMA.PROCESSLIST;
+---------------+---------------------+------+-----+---------+-------+
| Field         | Type                | Null | Key | Default | Extra |
+---------------+---------------------+------+-----+---------+-------+
| ID            | bigint(21) unsigned | NO   |     | 0       |       |
| USER          | varchar(16)         | NO   |     |         |       |
| HOST          | varchar(64)         | NO   |     |         |       |
| DB            | varchar(64)         | YES  |     | NULL    |       |
| COMMAND       | varchar(16)         | NO   |     |         |       |
| TIME          | int(7)              | NO   |     | 0       |       |
| STATE         | varchar(64)         | YES  |     | NULL    |       |
| INFO          | longtext            | YES  |     | NULL    |       |
| TIME_MS       | bigint(21)          | NO   |     | 0       |       |
| ROWS_SENT     | bigint(21) unsigned | NO   |     | 0       |       |
| ROWS_EXAMINED | bigint(21) unsigned | NO   |     | 0       |       |
+---------------+---------------------+------+-----+---------+-------+
11 rows in set (0.00 sec)
.

Per non salvare la stessa query molte volte, è possibile utilizzare l'hash della query come chiave unica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top