Wanneer je in PhpMyAdmin naar het overzicht van je database kijkt zie je in een oogopslag hoeveel data er in gebruik is. Echter, in veel gevallen klopt wat er wordt weergegeven niet met hoeveel data er daadwerkelijk op de schijf staat geschreven.
In dit artikel leggen we uit hoe dat kan en wat je kunt doen om dit verschil op te lossen.
Oorzaken
Er zijn een aantal oorzaken waardoor dit verschil in data weergave kan ontstaan:
- Er ontstaan lege plekken in de database wanneer data is verwijderd. Deze lege plekken nemen nog steeds ruimte in, totdat er nieuwe data op dezelfde plek wordt geschreven.
- MySQL leest niet elk bestand uit om te bepalen hoeveel data er in gebruik is. Om resources te besparen wordt de hoeveelheid data geschat.
- Hoe complexer de database, hoe groter het verschil kan zijn tussen wat er getoond wordt en de daadwerkelijke hoeveelheid data in gebruik. Elke extra tabel zorgt namelijk voor een mogelijke extra afwijking. Zorg er daarom voor dat je geen onnodige tabellen toevoegt.
- Database indexes worden gebruikt om de snelheid van lookups in tabellen te bevorderen. De index bevat een gedeelte van de data in een tabel, waardoor deze data dubbel op de schijf kan staan.
Oplossingen
Er zijn twee MySQL commando's die je kunt uitvoeren om het verschil in dataweergave op te lossen.
- Heranalyseer alle data van een tabel. Hierdoor wordt alle data geanalyseerd in plaats van een ruwe schatting:
ANALYZE TABLE <tablename>
- Optimaliseer een tabel. Hiermee los je lege plekken in een tabel op:
OPTIMIZE TABLE <tablename>
Je kunt dit doen binnen PhpMyAdmin door je database te selecteren en vervolgens op het 'SQL' tabblad te klikken. Voer je commando in en klik vervolgens rechtsonder op 'Go'.