En af de største årsager til, at store WordPress-websteder bliver langsommere, er, at deres database ikke er blevet optimeret. Mange ældre websteder bruger stadig MyISAM-lagringsmotoren i deres database. I løbet af de seneste år har InnoDB vist sig at yde bedre og være mere pålidelig. En stor grund til at bruge InnoDB frem for MyISAM er manglen på fuld låsning på tabel-niveau. Dette gør det muligt at behandle dine forespørgsler hurtigere.
- InnoDB vs MyISAM
- Bruger du MyISAM eller InnoDB?
- Konverter MyISAM til InnoDB med phpMyAdmin
- Konverter MyISAM til InnoDB med WP-CLI
InnoDB vs MyISAM
Her er et par af de største forskelle mellem InnoDB og MyISAM:
- InnoDB har låsning på række-niveau. MyISAM har kun låsning på fuldt tabel-niveau.
- InnoDB har det, der kaldes referentiel integritet, hvilket indebærer understøttelse af fremmednøgler (RDBMS) og relationsbegrænsninger, hvilket MyISAM ikke har (DMBS).
- InnoDB understøtter transaktioner, hvilket betyder, at du kan committe og rulle tilbage. Det gør MyISAM ikke.
- InnoDB er mere pålidelig, da den bruger transaktionslogfiler til automatisk genopretning. Det gør MyISAM ikke.
Bruger du MyISAM eller InnoDB?
Hvis du kører på et forholdsvis nyt WordPress-websted, er der gode chancer for, at du allerede bruger InnoDB MySQL-lagringsmotoren. Men med ældre WordPress-websteder vil du måske ønske at foretage et hurtigt tjek. Nogle websteder har måske endda blandet og matchet MyISAM- og InnoDB-tabeller, hvor du kan se forbedringer ved at konvertere dem alle sammen. Følg disse enkle trin nedenfor for at kontrollere.
Trin 1
Log ind på phpMyAdmin og klik ind på din mySQL-database.
Trin 2
Lav en hurtig scanning eller sortering af kolonnen “Type” og du kan se hvilke Storage Engine-typer dine tabeller bruger. I dette eksempel nedenfor kan du se, at to af tabellerne stadig bruger MyISAM.
Alternativt kan du køre en forespørgsel for at se, om der findes myISAM-tabeller. Udskift “database” med dit databasenavn.
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'
Konverter MyISAM til InnoDB med phpMyAdmin
Du kan konvertere MyISAM til InnoDB ret nemt. Eksemplet nedenfor bruger tabellen wp_comments
. Du skal blot køre ALTER-kommandoen for at konvertere den til InnoDB-lagringsmotor. Bemærk: Vi anbefaler altid at du tager backup af din MySQL-database før du kører nogen operationer på den.
ALTER TABLE wp_comments ENGINE=InnoDB;
Alternativt kan du også konvertere dem manuelt med phpMyAdmin. Du skal blot klikke på myISAM-tabellen, klikke ind under fanen “Operations” og ændre storage engine.
Konverter MyISAM til InnoDB med WP-CLI
WP-CLI er et kommandolinjeværktøj til udviklere til at administrere almindelige opgaver (og ikke så almindelige) i en WordPress-installation. Tjek denne artikel om, hvordan du konverterer MyISAM til InnoDB med WP-CLI.