Le query lente uccidono il sito
Una singola query mal scritta su tabella grande puo bloccare il database per secondi, congelando tutto il sito. WordPress con plugin malfatti, WooCommerce con migliaia di ordini, applicazioni custom: tutti soffrono di query lente. Identificarle e ottimizzarle e tra le wins più impattanti per la velocità.
Slow query log
Abilita in my.cnf: slow_query_log=1, slow_query_log_file=/var/log/mysql/slow.log, long_query_time=1 (secondi), log_queries_not_using_indexes=1. MySQL registra tutte le query oltre la soglia. Analizza con pt-query-digest (Percona Toolkit) per ranking. Identifica i top 10 colpevoli.
Profiling query in tempo reale
SHOW PROCESSLIST mostra query in esecuzione. SHOW FULL PROCESSLIST con query completa. Mata processi bloccati con KILL pid. Performance Schema (P_S.events_statements_summary_by_digest) aggrega query per pattern. Tool: mytop, innotop, Percona Monitoring and Management, MySQL Workbench.
Cause comuni di lentezza
Missing index su WHERE/JOIN/ORDER BY. Full table scan invece di index lookup. Select query con SELECT * di tabelle grandi. JOIN su colonne senza index. OR conditions non ottimizzabili. ORDER BY con LIMIT senza index appropriato. Subquery correlate (per ogni riga). N+1 query (ORM mal usato).
EXPLAIN e indici
EXPLAIN SELECT ... rivela il piano di esecuzione: type (system, const, ref, range, ALL pessimo), key (indice usato o NULL), rows (righe scansionate), Extra (Using filesort, Using temporary pessimi). Aggiungi indici composti su colonne usate insieme. ANALYZE TABLE aggiorna statistiche.
Quick wins WordPress
Plugin Query Monitor mostra slow query per pagina. Cancellare post_revisions e auto-drafts antichi. Indicizzare meta_query con colonna meta_key/meta_value tramite plugin Index WP MySQL For Speed. Limitare risultati con LIMIT. Cache transient per query costose. Disabilitare wp_options autoload eccessivo.
Hai bisogno di aiuto?
Se vuoi un sito veloce ottimizzato dal team di G Tech Group, scrivici tramite il modulo di contatto.