Mysql query lente Log -! SELECT / * N SQL_NO_CACHE * /
Domanda
Utilizzando mysqldumpslow
, posso vedere che le voci più comuni in un log di MySQL query lente sono del seguente modulo:
SELECT /*!N SQL_NO_CACHE */ from wp_posts (or wp_comments).
Non riesco a trovare molte informazioni su ciò che questo significa dichiarazione e se ho bisogno di preoccuparsi abbastanza per cercare di rintracciare dove WordPress è la creazione di questo SQL.
Soluzione
Questi tipi di SELEZIONA vengono sempre eseguita da mysqldumps.
Se si guarda nel lento registro per l'ora di inizio della query e il tempo di ognuno di questi SELECT è lo stesso tempo ogni giorno, è sicuramente venuta da un mysqldump avete qualche crontab'd.
Per eliminare questo, potrebbe essere necessario eseguire questo
SET GLOBAL slow_query_log = 'OFF';
Poi vai eseguire i mysqldumps, e quindi eseguire
SET GLOBAL slow_query_log = 'ON';
Questo dovrebbe eliminare totalmente questo tipo di SELECT da sbarco inutilmente nel registro lento.
Altri suggerimenti
Questa sintassi:
SELECT /*!N SQL_NO_CACHE */ * from wp_posts
viene utilizzato da mysqldump. Stai usando che tramite cron?
/* !50123 ... */
mezzi per includere il "..."
solo se si esegue la versione 5.1.23 o successiva. Questo permette mysqldump (e altri strumenti generali) per utilizzare lo stesso codice, ma farli funzionare su vecchi sistemi che non hanno avuto la funzione menzionati.
Ecco un uso io per il monitoraggio:
SHOW /*!50000 GLOBAL */ STATUS
Sarà eseguito come SHOW STATUS
su vecchi server o SHOW GLOBAL STATUS
su 5.0.0 e più recenti server.