Query Optimization
Baze de DateQuery optimization este procesul de îmbunătățire a performanței interogărilor SQL prin analiza planului de execuție, adăugarea de indexuri, restructurarea query-urilor și eliminarea operațiunilor ineficiente. O interogare optimizată poate fi de sute de ori mai rapidă decât una neoptimizată.
Optimizarea interogărilor SQL este una dintre cele mai importante competențe pentru oricine gestionează un site web sau o aplicație cu bază de date. O singură interogare lentă poate încetini întregul site, consumând resurse de CPU și blocând alte operațiuni.
Primul pas în optimizare este analiza planului de execuție folosind EXPLAIN (în MySQL/MariaDB). Această comandă arată cum motorul bazei de date planifică să execute interogarea: ce tabele accesează, ce indexuri folosește, câte rânduri estimează că va parcurge și în ce ordine.
Cele mai comune probleme și soluții includ: lipsa indexurilor (adaugă indexuri pe coloanele folosite în WHERE, JOIN și ORDER BY), scanarea completă a tabelului (full table scan — indică lipsa unui index relevant), interogări N+1 (în loc de o interogare per element, folosește JOIN-uri sau subquery-uri), și SELECT * (selectează doar coloanele necesare).
Tehnici avansate de optimizare includ: denormalizarea selectivă (duplicarea unor date pentru a evita JOIN-uri complexe), partitionarea tabelelor mari, utilizarea de indexuri compuse (pe mai multe coloane), covering indexes (indexuri care conțin toate coloanele necesare interogării) și optimizarea subquery-urilor prin transformare în JOIN-uri.
Pentru WordPress, interogările lente sunt adesea cauzate de: meta queries complexe (wp_postmeta nu are indexuri optime pentru căutări multiple), taxonomii cu mulți termeni, și plugin-uri care execută interogări neoptimizate. Plugin-ul Query Monitor ajută la identificarea interogărilor problematice.
O practică importantă este monitorizarea slow query log-ului din MySQL/MariaDB. Activează-l cu long_query_time setat la 1 secundă pentru a identifica interogările care necesită optimizare. Instrumentele precum pt-query-digest din Percona Toolkit pot analiza log-urile și prioritiza optimizările.