Hoewel alle onderdelen van een WordPress website belangrijk zijn, is je database zonder twijfel een van de belangrijkste. In je database wordt praktisch alle informatie van je site opgeslagen en geraadpleegd. Alleen daarom al moet je WordPress database-optimalisatie perfect zijn.

Een database die lijdt aan een overdaad aan gegevens (bloat) en prestatieproblemen zal je site vertragen en het ophaalproces schaden. Bovendien kun je ook de algehele gebruikerservaring (UX) beïnvloeden. Dit kan op zijn beurt je verkeerscijfers beïnvloeden en doorsijpelen naar je plek in de zoekmachinerankings (naast andere problemen).

In deze tutorial bekijken we WordPress database-optimalisatie vanuit een aantal invalshoeken. We bespreken de algemene structuur, samen met een heleboel optimalisatietechnieken die je kunt gebruiken. We noemen ook meteen de tools en diensten die je kunnen helpen om je databases draaiende te houden.

De basics van de WordPress databasestructuur

Kort gezegd is de WordPress database de ruggengraat van je website. Het bevat vrijwel alles, zoals content, gebruikersgegevens, instellingen en nog veel meer. Bij WordPress zijn de database ’tabellen’ verantwoordelijk voor het opslaan van specifieke soorten informatie.

Het platform gebruikt de MySQL of MariaDB databasebeheersystemen en je hebt er toegang toe met tools zoals phpmyAdmin of Adminer:

De phpMyAdmin interface op een Kinsta hosting dienst, toont een lijst van WordPress database tabellen met opties voor acties zoals bladeren, structureren, zoeken, invoegen en loslaten. De getoonde tabellen zijn wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_termmeta, wp_terms, wp_term_relationships, wp_term_taxonomy, wp_usermeta en wp_users.
Een WordPress database met phpMyAdmin.

De tabel wp_posts bevat bijvoorbeeld je berichten en pagina’s, terwijl wp_users gegevens bevat over de gebruikers van je site. We zullen een aantal van deze tabellen wat verderop in meer detail bekijken.

Bij de installatie maakt WordPress een set standaard tabellen aan voor alle typische toepassingen die je nodig hebt. De plugins, thema’s en installaties kunnen echter ook tabellen maken om specifieke en gerelateerde gegevens in op te slaan.

Deze modulaire aanpak is in veel opzichten fantastisch, omdat het uitgebreide functionaliteiten mogelijk maakt. Aan de andere kant kunnen te veel overbodige tabellen (samen met verkeerd beheer) ook leiden tot bloat.

Inzicht in de databasestructuur voor WordPress is om twee redenen cruciaal:

  • Prestaties. Met een goede organisatie van de database kun je gegevens sneller ophalen, wat een directe invloed heeft op laadtijden en prestaties.
  • Onderhoud. Als je weet welke tabellen corresponderen met de verschillende onderdelen van je site, helpt dat bij het onderhoud. Als een bepaalde plugin bijvoorbeeld problemen veroorzaakt, kun je de bijbehorende tabellen oplossen.

Het regelmatig opschonen en optimaliseren van de tabellen in je database kan voorkomen dat ze groot en onhandelbaar worden. Zoals we weten, kan dit de prestaties op een negatieve manier beïnvloeden.

WordPress-specifieke tabellen

Sites van alle soorten gebruiken databases, niet alleen WordPress. Het platform heeft zijn eigen database tabel typen en rollen, en als je deze wilt optimaliseren, is het belangrijk om ze volledig te begrijpen.

We zullen ze hier niet allemaal behandelen, maar bepaalde tabellen zullen meer aan bod komen dan andere:

  • wp_options. Deze tabel slaat je site-instellingen op en is waarschijnlijk een van de meest gebruikte tabellen in je database. Je wilt deze tabel slank houden en goed optimaliseren.
  • wp_postmeta. Hier staan de metagegevens van je berichten. Naarmate je site groeit, kan dit een van de grootste tabellen in je database worden.
  • wp_users en wp_usermeta. Alle informatie over de gebruikers van je site en hun metagegevens staan in deze twee tabellen. In sommige zeldzame gevallen moet je hier inloggen om een wachtwoord te wijzigen als je bent afgesloten van WordPress.

Onthoud dat elke extra plugin of thema die je aan je site toevoegt, deze structuur ook kan veranderen. Het zal echter zelden voorkomen dat een thema of plugin een van deze tabellen verwijdert.

Toch moet je deze mogelijke wijzigingen regelmatig bekijken en begrijpen. Dit is essentieel voor het onderhouden van een geoptimaliseerde database die de prestaties van je site ondersteunt in plaats van belemmert.

Waarom WordPress Database Optimalisatie noodzakelijk is voor de meeste websites

Het optimaliseren van je WordPress database is niet alleen een goede gewoonte; het is een noodzaak voor de meeste sites die een naadloze ervaring willen bieden. Je database is de centrale opslag voor alle belangrijke gegevens van je site. De gezondheid ervan heeft een directe invloed op de prestaties, snelheid en betrouwbaarheid van je site.

Daarom zijn er twee algemene redenen waarom regelmatige WordPress database optimalisatie een belangrijk onderdeel van je workflow zou moeten zijn:

  • Verbeterde snelheid en prestaties van je site. Je WordPress database zal na verloop van tijd onnodige of overbodige gegevens bevatten, zoals tijdelijke opties, revisies van berichten, spam reacties of verouderde concepten. Deze opgeblazenheid maakt het langzamer om informatie op te halen.
  • Verbeterde gebruikerservaring. Gebruikers verwachten ook een soepele en snelle browse-ervaring. Een goed geoptimaliseerde database betekent dat pagina’s sneller laden en gegevens efficiënter worden verwerkt. Simpel gezegd is elke interactie op een website afhankelijk van database queries. Met een grotere efficiëntie komt een betere UX.

Er zijn ook meer geavanceerde redenen om je database te optimaliseren. Een niet-geoptimaliseerde database legt bijvoorbeeld extra druk op je server omdat die harder moet werken om gegevens te vinden en te leveren. Dit heeft een kritisch effect als je gedeelde hosting met beperkte resources gebruikt. Dit is deels een reden waarom Kinsta helemaal geen gedeelde hosting aanbiedt.

Daarnaast, naarmate je site groeit, groeit je database ook. Hoewel je in het begin misschien een klein, beheersbaar systeem hebt, kan dit snel complexer worden. Met regelmatige optimalisatie kun je ervoor zorgen dat je database de schaalvergroting van je site aankan zonder dat dit ten koste gaat van de prestaties.

Kortom, WordPress database-optimalisatie zal de reactietijden verbeteren. Een laadvertraging van zelfs maar een paar seconden kan leiden tot hogere bouncepercentages en verloren verkeer, wat geen goed nieuws is voor je zoekresultaten.

Regelmatig onderhoud en schoonmaak

Als je regelmatig je WordPress database opschoont en onderhoudt, heb je een van de beste manieren om je site zo soepel mogelijk te laten werken. Databases kunnen na verloop van tijd vollopen met onnodige gegevens, dus een regelmatige en consistente workflow is belangrijk.

Hierbij is belangrijk dat je alle tools en diensten die je tot je beschikking hebt zo optimaal mogelijk benut. Het goede nieuws is dat WordPress een aantal manieren biedt om je database te onderhouden!

Plugins bieden bijvoorbeeld talloze manieren om een database te optimaliseren. WP-Optimize is bijvoorbeeld een populaire oplossing voor deze klus. Er zijn er meer, maar deze heeft goede beoordelingen en recensies op WordPress.org, is gratis en wordt regelmatig bijgewerkt.

De headerafbeelding van WordPress.org voor de plugin WP-Optimize met de slogan
De WP-Optimize header van WordPress.org.

We zullen in dit artikel laten zien hoe je je WordPress database kunt optimaliseren met deze plugin, maar je kunt de instructies ook toepassen op de plugin van je keuze. Voor Kinsta klanten: zorg ervoor dat de plugin die je kiest voldoet aan onze eisen en niet voorkomt op onze verboden lijst.

In de volgende paragrafen gaan we hier dieper op in en behandelen we de handmatige aanpak en het gebruik van WP-Optimize. Later zullen we de eigen tools van Kinsta behandelen. Maar eerst is het tijd om wat pre-optimalisatietaken te bespreken.

Wat je moet doen voordat je aan optimalisatie begint

Voordat je in je database duikt, zijn er een paar eenvoudige taken die je moet uitvoeren. Om te beginnen moet je altijd een volledige backup van je site en database maken. Als het ergste scenario zich voordoet en je ruïneert je site, dan kun je hem in een paar minuten terugzetten.

Je moet ook alle plugins of thema’s verwijderen die je niet gebruikt op je site. Dit kan een aantal problemen oplossen, en niet alleen met je database. Het kan ook helpen om de beveiliging van je site te versterken.

Het WordPress dashboard met een lijst van geïnstalleerde plugins. Elke plugin heeft een beschrijving, met opties om te activeren, deactiveren of verwijderen en instellingen voor automatische updates.
Het Plugins scherm in WordPress

Houd er echter rekening mee dat dit, afhankelijk van de plugin of het thema, ongewenste tabellen kan achterlaten. Dit is natuurlijk precies de reden waarom we de database willen optimaliseren, dus begrijpen welke plugins en thema’s tijdelijke gegevens achterlaten zal je later helpen.

De laatste taak is iets dat je zult moeten doen zodra je inlogt in jouw favoriete databasebeheerprogramma. Databasefouten kunnen duidelijk wijzen op prestatieproblemen, dus deze moet je oplossen voordat je verder optimaliseert.

In het kort komt het erop neer dat je al je tabellen selecteert en dan de knop Check table gebruikt om een rapport te genereren.

De phpMyAdmin tool met de optie 'Check tabel'. Links zie je verschillende tabelnamen zoals wp_termmeta en wp_users, elk met actie-iconen voor taken zoals bladeren en zoeken. Rechts toont een contextmenu opties voor tabelbewerkingen zoals exporteren en optimaliseren.
De optie Check table in phpMyAdmin.

Als je OK of iets dergelijks ziet, is dit optimaal. Eventuele fouten moeten echter worden opgelost voordat je verder gaat. Dit is waar een ondersteuningsverzoek een goed idee kan zijn.

1. De tabellen in je database optimaliseren

De eerste stap is het optimaliseren van de tabellen in je database. Bij een handmatige aanpak ga je naar de link Databases in je beheertool en kies je je database:

The Kinsta phpMyAdmin interface showing the Databases tab. Two databases are listed, and both have check privileges actions available.
De Kinsta phpMyAdmin interface met het tabblad Databases. Er staan twee databases in de lijst en voor beide zijn controleprivileges beschikbaar.

In veel gevallen ben je al in de database voor je WordPress site. Je ziet dan een lijst met tabellen binnen je database. Selecteer ze allemaal en kies dan de Optimize table optie uit het uitklapmenu voordat je op Go klikt:

Een contextmenu in phpMyAdmin voor een geselecteerde lijst van WordPress databasetabellen, met de optie 'Optimize table' gemarkeerd. Andere opties zijn: kopieer tabel, toon maken, exporteren, leegmaken, neerzetten en tabelonderhoud acties.
Kies om alle databasetabellen te optimaliseren met phpMyAdmin.

Na enige tijd zie je een rapport met de status van elke tabel in je database:

De phpMyAdmin interface toont een bericht dat aangeeft dat de SQL query voor het optimaliseren van WordPress database tabellen succesvol is uitgevoerd. Onder het bericht staan individuele tabellen met opmerkingen over hun optimalisatie ondersteuningsstatus.
Het optimalisatierapport in phpMyAdmin.

Ga met WP-Optimize naar WP-Optimize > Database > Optimalizations. Hier klik je op de knop Run optimization uitvoeren naast de optie Optimize database tables:

Een deel van de interface van de WP-Optimize plugin in het WordPress dashboard, met de optie 'Optimize database tables' geselecteerd en de knop 'Run optimization' gemarkeerd. De interface geeft aan dat de optimalisatie 159 tabellen zal beïnvloeden.
De knop Run optimization in het dashboard van WP-Optimize.

De plugin zal alle tabellen doorlopen en je vervolgens een succesmelding geven. Op dit punt kun je verder gaan met post revisies.

2. Revisies van berichten opschonen

Het revisiesysteem van WordPress betekent dat elke opslag die je maakt in de loop van de tijd kan oplopen. Je kunt deze eenvoudig uit je database verwijderen met behulp van SQL queries. De meest eenvoudige manier om dit te doen is met één regel:

DELETE FROM wp_posts WHERE post_type = 'revision’;

Hiermee verwijder je alle soorten revisieberichten uit de tabel. Er zijn echter ook bijbehorende gegevens in andere tabellen. Om deze te verwijderen, kun je het volgende fragment gebruiken:

DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT ID FROM wp_posts);
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);

Natuurlijk moet je het juiste tabelvoorvoegsel voor je eigen database gebruiken als je dit kopieert en plakt. Met een plugin duurt deze taak enkele seconden. Net als de algemene WordPress database optimalisatie, geeft WP-Optimize je een één-klik knop vanuit WordPress:

Het dashboard van de WP-Optimize plugin met de nadruk op database optimalisatie. Opties zijn onder andere het opschonen van alle berichtrevisies en automatisch opgestelde berichten, met een blauwe knop 'Run optimization' naast elke taak.
De opties om revisies en autodrafts te wissen in WP-Optimize.

In de toekomst kun je het aantal revisies dat WordPress gebruikt beperken door naar je wp-config.php bestand te gaan. Voeg hier de volgende regel toe aan het bestand en sla je wijzigingen op:

define( 'WP_POST_REVISIONS', X );

Hier is X het aantal revisies dat je wilt behouden. Je zou hier ook false kunnen opgeven, maar dat raden we niet aan. Je wilt altijd minstens één revisie hebben om op terug te vallen als je die nodig hebt.

3. Spamcomments en weggegooide items verwijderen

We kunnen ook SQL queries gebruiken om spamcomments te verwijderen. Merk op dat wanneer je comments modereert, ongewenste opmerkingen 30 dagen in je database blijven staan. Dit betekent dat opmerkingen die binnen dat tijdsbestek als spam zijn gemarkeerd in je database blijven staan.

Je kunt deze volledig verwijderen met een paar regels SQL in je databasebeheerprogramma:

DELETE FROM wp_comments, wp_commentmeta
USING wp_comments
LEFT JOIN wp_commentmeta ON wp_comments.comment_ID = wp_commentmeta.comment_id
WHERE wp_comments.comment_approved = 'spam’;

Hetzelfde geldt voor items die je binnen WordPress naar de prullenbak stuurt. Er kan veel content ‘in limbo’ zijn, die je met een andere SQL query kunt verwijderen:

DELETE p, pm, tr
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
WHERE p.post_status = 'trash’;

Net als bij berichtrevisies kun je in wp-config.php waarden instellen voor de tijd die het duurt om prullenbak-items te verwijderen:

define( 'EMPTY_TRASH_DAYS', X )

Binnen WP-Optimize zijn er drie opties om je te helpen bij het verwijderen van spamcomments en de WordPress prullenbak:

Een sectie van de WP-Optimize plugin in het WordPress dashboard die verschillende opruimopties toont, zoals het verwijderen van spam en weggegooide comments, niet-goedgekeurde comments en verlopen tijdelijke opties, met selectievakjes om elke optimalisatietaak te selecteren.
De opties voor het verwijderen van spamcomments, de prullenbak en niet-goedgekeurde comments in WP-Optimize.

Er is ook de optie om niet-goedgekeurde comments te verwijderen. Dit kan handig zijn in sommige situaties, maar we raden dit niet aan. Het is beter om ze te modereren en te verwijderen als dat nodig is.

4. Ongebruikte tags verwijderen

Taxonomieën zijn belangrijk voor WordPress, maar ze kunnen na verloop van tijd een enorme verzameling worden. Dit is een uitstekende manier voor het optimaliseren van je database, en net als bij andere technieken kun je een SQL query gebruiken:

DELETE t, tt
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
LEFT JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.taxonomy = 'post_tag' AND tt.count = 0;

De dichtstbijzijnde optie om ongebruikte tags te verwijderen binnen WP-Optimize is Clean post meta data. Dit beoordeelt of je verweesde metadata hebt en verwijdert deze:

De interface van de WP-Optimize plugin toont opties voor het opschonen van de WordPress database, waaronder het verwijderen van pingbacks en trackbacks, het opschonen van metagegevens van berichten en het opschonen van metagegevens van gebruikers met respectievelijke tellingen voor elk.
De opties binnen WP-Optimize om orphaned berichtmetadata op te ruimen.

Hoewel deze optie ook categorieën en andere gegevens kan verwijderen, is het een veilige oplossing om te gebruiken, vooral als geen enkele andere bericht of pagina ze gebruikt.

5. Pingbacks en trackbacks verwijderen

We weten niet zeker hoeveel WordPress websites pingbacks en trackbacks gebruiken in het huidige tijdperk, maar ze kunnen nog steeds je database opvullen als je de instelling aan laat staan. De eerste taak is om te controleren of je deze optie wel hebt uitgeschakeld. Dit is een eenvoudig klusje binnen de Settings > Discussion pagina binnen WordPress:

The WordPress dashboard’s 'Discussion Settings' screen showing checkboxes for default post settings such as notifying linked blogs, allowing link notifications from other blogs, and allowing people to submit comments on new posts.
Het Discussie Instellingen scherm binnen WordPress met de pingback en trackbacks opties.

Zorg ervoor dat je in het gedeelte Default Post Settings de opties “Attempt to notify any blogs…” en “Allow link notifications…” uitschakelt en sla je wijzigingen op. Ga vervolgens terug naar je databasebeheerprogramma en voer de volgende query uit:

DELETE c, cm
FROM wp_comments c
LEFT JOIN wp_commentmeta cm ON c.comment_ID = cm.comment_id
WHERE c.comment_type IN ('trackback', 'pingback’);

Beide staan op dezelfde plaats als comments, hoewel het type anders is en daar richt de query zich op. WP-Optimize biedt twee aparte opties voor elk van deze:

Het WordPress dashboard met de instellingen van de WP-Optimize plugin met opties voor het verwijderen van verlopen transient options, pingbacks, trackbacks en voor het opschonen van de metagegevens van posts, met het aantal gevonden items per categorie.
De opties van WP-Optimize voor het verwijderen van trackbacks en pingbacks.

Zodra je deze taak hebt voltooid, zou je geen trackbacks of pingbacks meer in je database moeten zien!

Kinsta’s automatische WordPress database-optimalisatie gebruiken

Voor Kinsta klanten heb je geen WordPress database-optimalisatieplugin nodig. We voeren continu automatische optimalisaties uit, de klok rond, voor alle sites. Dit betekent dat je niets hoeft te weten over SQL queries, waar gegevens zich bevinden in je database of iets anders dat relevant is voor WordPress database optimalisatie.

Continue database-optimalisatie is onderdeel van onze Application Performance Monitoring (APM). Dit houdt je WordPress database (en site) slank en efficiënt zonder dat je handmatig hoeft in te grijpen.

APM schoont je database op door overbodige gegevens te verwijderen, zoals transients, niet-gebruikte metadata en spamcomments. Zo kun je ervoor zorgen dat je database geoptimaliseerd blijft zonder dat je er iets voor hoeft te doen.

Het Kinsta APM dashboard met de 'Totale transactietijd' grafiek, die de reactietijd uitsplitst naar PHP, MySQL en externe diensten over een bepaalde periode. De sectie hieronder toont 'Langzaamste transacties' met statistieken zoals totale duur en gemiddelde duur.
De Kinsta APM tool.

Het gebruik van APM is niet de focus van dit bericht, maar we behandelen het wel in onze documentatie. Als het gaat om databasemonitoring, houdt APM de langzaamste SQL query’s die worden uitgevoerd in de gaten:

De Kinsta APM interface toont een grafiek met de titel 'Langzaamste database queries', die verschillende WordPress opties-gerelateerde SQL-bewerkingen weergeeft, zoals SELECT, UPDATE, INSERT, SHOW en DELETE, samen met hun totale duurpercentages, totale duur in milliseconden, maximale duur, gemiddelde duur en snelheid per minuut.
Een rapport van Kinsta’s APM met de traagste queries in de database.

Je hebt toegang tot APM via het MyKinsta dashboard, meer specifiek de APM pagina. Merk op dat je hem mogelijk eerst moet inschakelen:

Een dashboard van een Kinsta hosting service met de sectie Application Performance Monitoring (APM). Het bevat een korte uitleg van de APM feature, samen met waarschuwingen over het gebruik ervan. Een knop 'Schakel APM in' wordt prominent weergegeven zodat de gebruiker de service kan activeren.
De optie om APM in te schakelen binnen het MyKinsta dashboard.

Vanaf hier moet je APM wat tijd geven om gegevens te verzamelen. Maar als het eenmaal zichtbaar is, kun je de query’s controleren die mogelijk verder geoptimaliseerd moeten worden.

Databasequery’s optimaliseren voor meer efficiëntie

Het optimaliseren van de database queries die je gebruikt is cruciaal om de prestaties en snelheid van je WordPress site te verbeteren. Efficiënte query’s betekenen het sneller ophalen van gegevens, wat weer leidt tot betere laadtijden en een betere gebruikerservaring.

Aangezien je query’s kunt gebruiken om WordPress databaseoptimalisatie uit te voeren, volgen hier een paar tips over hoe je ze efficiënter kunt maken:

  • Optimaliseer je querystructuren. Je zult merken dat we geen jokertekens (of sterretjes) gebruiken in onze voorbeeldqueries. In plaats van SELECT * te gebruiken, moet je specifiek zijn met betrekking tot de exacte kolommen die je nodig hebt. Gebruik waar mogelijk ook JOIN in plaats van subqueries. Subqueries kunnen minder efficiënt zijn, vooral als ze geen goede structuur hebben of betrekking hebben op grote datasets.
  • Gebruik querycaching. Tools zoals Redis kunnen de resultaten van queries in het geheugen opslaan. Dit betekent dat de resultaten van de query uit de cache geleverd kunnen worden in plaats van de volgende keer opnieuw de database te bevragen.

Dit zijn wat korte tips, maar er is nog veel meer dat je hier kan doen. Laten we hier snel naar kijken.

Geavanceerde WordPress database-optimalisatie en tips voor probleemoplossing

‘Indexeren’ kan je helpen om een snelle referentiegids aan je database toe te voegen. Het helpt de databaseserver om gegevens sneller te vinden zonder elke rij van een tabel te scannen.

Om dit te doen identificeer je de kolommen die vaak worden gebruikt in je queries en overweeg je om er indexen aan toe te voegen. Je kunt dit doen vanuit phpMyAdmin (of vergelijkbaar). Klik eerst op de tabel die je wilt indexeren en ga naar het tabblad Structure:

Het tabblad 'Structure' in phpMyAdmin voor de tabel 'wp_posts' van een WordPress database. Het toont een lijst van kolommen met typen, collatie, attributen en beschikbare acties zoals wijzigen en neerzetten.
Het tabblad Structure voor een tabel in phpMyAdmin.

Selecteer vervolgens de kolommen die je wilt indexeren en kies de Index optie onderaan de tabel:

Een close-up van een sectie in phpMyAdmin waarin de indexoptie is gemarkeerd voor een WordPress databasetabel. Andere opties zoals browse, change, drop, primary, unique, spatial en fulltext zijn ook zichtbaar.
Kiezen om kolommen te indexeren in phpMyAdmin.

Zodra je je wijzigingen opslaat, worden deze kolommen geïndexeerd.

Het EXPLAIN statement kan je ook helpen om te begrijpen hoe MySQL je query uitvoert. Dit kan je helpen inefficiënties op te sporen en te begrijpen hoe je query interageert met de indexen. Om dit uit te voeren, voeg je het statement toe aan de voorkant van een bestaande query. Wanneer je het uitvoert, zal SQL uitsplitsen hoe het de query uitvoert:

Het phpMyAdmin SQL query uitvoervenster toont een bericht over de succesvolle uitvoering van een SQL query. Onder het bericht staat een SQL-commando om een verwijderbewerking op WordPress commentaartabellen uit te leggen, met details van het uitvoerplan van de query.
De uitvoer van een query voorafgegaan door een EXPLAIN statement.

We kunnen hier niet alles behandelen over het EXPLAIN statement, hoewel de MySQL documentatie bijna alles behandelt wat je erover moet weten.

Prestaties monitoren

Het monitoren van de prestaties van je WordPress database is een essentieel onderdeel van het beheren van een site. Het helpt om potentiële problemen te identificeren voordat ze escaleren en zorgt ervoor dat je site efficiënt en responsief blijft.

Veel van de technieken die we in dit artikel behandelen gaan over prestatiemonitoring, zoals het gebruik van EXPLAIN voor langzame queries. Er is echter veel meer mogelijk. In feite bevat phpmyAdmin zijn eigen prestatiemetingen op het tabblad Status van de server:

Het tabblad 'Status' van phpMyAdmin toont een taartdiagram en een lijst met SQL instructiebewerkingen met hun frequentie. De grafiek toont de verdeling van bewerkingen zoals 'set option', 'show variables' en 'select' sinds het opstarten van de server.
Het phpmyAdmin Status scherm.

Hiermee kun je uitvoeringstijden en processen van queries bekijken (op het tabblad Query statistics), wat helpt bij het identificeren van queries die geoptimaliseerd moeten worden. Voor geavanceerde monitoring is MySQL Workbench van onschatbare waarde:

Een gedetailleerde weergave van MySQL Workbench met twee SQL queries in de editor en het resultatenvenster eronder. De linker zijbalk toont databaseschema's en de werkbalk bovenaan biedt verschillende functies voor databasebeheer. Een snippet box aan de rechterkant biedt hulp bij de SQL syntax.
De hoofdgebruikersinterface van MySQL Workbench.

Dit geeft je geavanceerde featuresvoor database ontwerp, ontwikkeling en beheer. Het biedt ook prestatierapporten en diagnoses die je kunnen helpen bij het afstellen van je database.

Binnen WordPress kun je met de Query Monitor plugin databasequeries, hooks, conditionals, HTTP verzoeken en meer controleren.

De WordPress.org header voor de Query Monitor plugin. Het toont query's per component met een focus op componenten zoals 'wordpress-seo' en 'woocommerce'. De HTTP verzoeken worden weergegeven met methoden, URL's en statussen, samen met een paneel voor waarschuwingen en meldingen.
De Query Monitor plugin.

Deze is vooral handig voor het opsporen van langzame queries en het identificeren van de plugins of thema’s die deze veroorzaken. In de meeste gevallen is dit echter een ontwikkelplugin, dus misschien niet geschikt voor een productiesite.

Omgaan met grote databases in WordPress

Wanneer een WordPress site groeit in content, gebruikers en verkeer, wordt de database natuurlijk groter. Een grote database is dus iets wat je vaak tegenkomt (of waar je je zorgen over maakt) als je een site beheert.

Het meeste advies dat we in dit artikel geven kan geschikt zijn voor een grote database – en het verkleinen ervan. Er zijn echter genoeg andere tips die we kunnen geven voor databases die inherent groter zijn dan gebruikelijk:

  • Archiveer oudere gegevens. In plaats van alle gegevens live te houden, kun je overwegen om oude berichten of gebruikersgegevens die je niet regelmatig opent te archiveren.
  • Gebruik een Content Delivery Network (CDN). Het offloaden en serveren van statische resources zoals afbeeldingen, video’s en downloads van een andere server kan de belasting van je site verminderen en hem sneller maken. Bovendien zal je site sneller laden voor gebruikers, ongeacht waar ze zich bevinden.
  • Custom queries. Als je een WordPress developer bent, schrijf dan efficiënte queries voor je thema’s en plugins. Zo haal je alleen op wat je nodig hebt en houd je de efficiëntie hoog.

Je kunt zelfs geavanceerde technieken zoals tabelpartitionering en ‘database sharding‘ overwegen Hierbij worden gegevens verdeeld over meerdere databases. Dit is vaak complex en vereist meestal deskundig beheer.

Daarover gesproken, experts zijn een noodzaak als het gaat om hoge prestaties van je database en bijbehorende website. Kinsta’s WordPress hosting is schaalbaar, wordt beheerd en is geoptimaliseerd voor het platform.

Het Kinsta hosting dashboard toont 'Site Informatie' met secties voor basisgegevens, omgevingsgegevens en SFTP/SSH informatie. Grafieken voor sitebezoeken en totale transactietijd zijn zichtbaar en geven een analyse van de websiteprestaties.
De Kinsta WordPress Hosting website.

Pakketten beginnen vanaf $35 per maand en onze architectuur kan alles aan, van een eenvoudige blog, helemaal tot aan grote netwerken voor grote ondernemingen. Laat ons vooral weten hoe we jouw hostingpartner voor de lange termijn kunnen worden, ongeacht je doelen.

Samenvatting

Je WordPress database is als de motor van een auto: zonder tuning zal hij niet zo goed presteren als nodig is. In feite kan een gebrek aan WordPress database optimalisatie ervoor zorgen dat je van de eerste naar de laatste plaats zakt als het gaat om zoekresultaten. Je gebruikers zullen ook merken dat je site een ondergeschoven kindje wordt, dus een tiptop database die snel werkt is cruciaal voor succes.

Er zijn veel manieren waarop je dit kunt doen, maar een combinatie van handmatige technieken, plugins en Kinsta’s eigen optimalisatietools zal je de beste voordelen opleveren. In veel gevallen kan automatisering je helpen om veel van deze taken uit te voeren zonder dat je zelf hoeft in te loggen of een specifieke tool hoeft uit te voeren.

We horen graag of onze WordPress database-optimalisatietips voor jou hebben gewerkt. Laat ons weten welke het meeste effect hebben gehad in de comments hieronder!

Jeremy Holcombe Kinsta

Content & Marketing Editor bij Kinsta, WordPress Web Developer en Content Writer. Buiten alles wat met WordPress te maken heeft, geniet ik van het strand, golf en films. En verder heb ik last van alle problemen waar andere lange mensen ook tegenaan lopen ;).