Is je website traag door de database? Zo vind je de trage queries met de slow query log en EXPLAIN, en voeg je de juiste index toe zonder je site te overbelasten.
Een trage website ligt vaak aan een handvol queries die bij elke paginaweergave een hele tabel doorzoeken. Zolang de tabel klein is, merk je dat niet; bij tienduizenden bestellingen of logregels wel. Een index op de juiste kolom kan zo'n query van seconden naar milliseconden brengen.
Meten gaat voor gokken. De slow query log vertelt welke queries traag zijn, EXPLAIN vertelt waarom.
Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
Log tijdelijk alle queries die langer duren dan bijvoorbeeld één seconde.
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
SHOW VARIABLES LIKE 'slow_query_log_file';Met mysqldumpslow zie je welke queries het vaakst en het langst duren.
mysqldumpslow -s t -t 10 /var/lib/mysql/servernaam-slow.logZet EXPLAIN voor de trage query. Zie je type ALL en een groot aantal bij rows, dan wordt de hele tabel doorzocht.
EXPLAIN SELECT * FROM bestellingen WHERE klant_id = 42 AND status = 'open';Indexeer de kolommen in WHERE (en eventueel ORDER BY), in de volgorde waarin ze het meest filteren. Op grote tabellen kan dit even duren; doe het buiten drukke uren en na een back-up.
ALTER TABLE bestellingen ADD INDEX idx_klant_status (klant_id, status);Een functie om de kolom heen (bijvoorbeeld DATE(aangemaakt) = …) of een LIKE die begint met % kan de index niet gebruiken. Schrijf de voorwaarde liever als bereik.
-- in plaats van WHERE DATE(aangemaakt) = '2026-10-01'
WHERE aangemaakt >= '2026-10-01' AND aangemaakt < '2026-10-02'Let op: Meer indexen is niet altijd beter: elke index maakt invoegen en bijwerken iets trager en kost ruimte. Voeg indexen toe voor queries die je gemeten hebt.
Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
Kijk naar de tabel wp_options: veel autoload-opties of een grote hoeveelheid tijdelijke gegevens (transients) maken elke pagina trager. Ook plugins met eigen logtabellen groeien snel.
Soms: innodb_buffer_pool_size bepaalt hoeveel data in het geheugen past. Maar een ontbrekende index los je daar niet mee op.
Na het verwijderen van veel rijen kan het ruimte teruggeven. Voor snelheid is een goede index meestal veel belangrijker.
Hulp nodig van een mens? Website-onderhoud · WordPress-support · Hosting en onderhoud · Alle oplossingen