Een van de belangrijkste redenen waarom grote en grootschalige WordPress sites trager worden is omdat hun database niet geoptimaliseerd is. Veel oudere sites gebruiken nog steeds de MyISAM storage engine in hun database. De laatste jaren is gebleken dat InnoDB beter presteert en betrouwbaarder is. Een grote reden om InnoDB te verkiezen boven MyISAM, is het ontbreken van full table-level locking. Hierdoor kunnen je query’s sneller verwerkt worden.
- InnoDB vs MyISAM
- Gebruik je MyISAM of InnoDB?
- MyISAM omzetten naar InnoDB met phpMyAdmin
- MyISAM omzetten naar InnoDB met WP-CLI
InnoDB vs MyISAM
Hier zijn een paar van de belangrijkste verschillen tussen InnoDB en MyISAM:
- InnoDB heeft row-level locking. MyISAM heeft alleen full table-level locking.
- InnoDB heeft wat referential integrity wordt genoemd, wat inhoudt dat foreign keys (RDBMS) en relatiebeperkingen worden ondersteund. MyISAM heeft dit niet (DMBS).
- InnoDB ondersteunt transacties, wat betekent dat je dingen kunt vastleggen en terugdraaien. MyISAM doet dat niet.
- InnoDB is betrouwbaarder omdat het transactionele logs gebruikt voor automatisch herstel. MyISAM doet dat niet.
Gebruik je MyISAM of InnoDB?
Als je op een vrij nieuwe WordPress site draait is de kans groot dat je al de InnoDB MySQL storage engine gebruikt. Maar bij oudere WordPress sites wil je dat misschien even controleren. Sommige sites hebben misschien zelfs een mix van MyISAM en InnoDB tabellen, waarbij je verbeteringen zou kunnen zien door ze allemaal om te zetten. Volg deze eenvoudige stappen hieronder om dit te controleren.
Stap 1
Log in op phpMyAdmin en klik verder naar je mySQL database.
Stap 2
Doe een snelle scan of sorteer de kolom “Type” en je kunt zien welke Storage Engine types je tabellen gebruiken. In dit voorbeeld hieronder zie je dat twee van de tabellen nog steeds MyISAM gebruiken.
Je kunt ook een query uitvoeren om te zien of er MyISAM tabellen bestaan. Vervang ‘database’ door de naam van je database.
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'
MyISAM omzetten naar InnoDB met phpMyAdmin
Je kunt MyISAM vrij eenvoudig omzetten naar InnoDB. Dit voorbeeld hieronder gebruikt de tabel wp_comments
. Voer simpelweg het ALTER commando uit om het om te zetten naar de InnoDB storage engine. Opmerking: We raden altijd aan een backup te maken van je MySQL database voordat je er bewerkingen op uitvoert.
ALTER TABLE wp_comments ENGINE=InnoDB;
Als alternatief kun je ze ook handmatig omzetten met phpMyAdmin. Klik gewoon op de myISAM tabel, klik in de “Operations” tab, en verander de storage engine.
MyISAM omzetten naar InnoDB met WP-CLI
WP-CLI is een commandoregeltool voor developers om veel voorkomende taken (en minder voorkomende) van een WordPress installatie te beheren. Bekijk dit artikel over hoe je MyISAM omzet naar InnoDB met WP-CLI.