En av de största orsakerna till att stora WordPress-webbplatser blir långsammare är att deras databas inte har optimerats. Många äldre webbplatser använder fortfarande MyISAM-lagringsmotorn i sin databas. Under de senaste åren så har InnoDB visat sig prestera bättre och vara mer tillförlitlig. En stor anledning att man bör använda InnoDB istället för MyISAM är avsaknaden av fullständig låsning på tabellnivå. Detta gör att dina sökfrågor kan behandlas snabbare.

InnoDB vs MyISAM

Här är några av de största skillnaderna mellan InnoDB och MyISAM:

  • InnoDB har låsning på radnivå. MyISAM har endast låsning på fullständig tabellnivå.
  • InnoDB har vad som kallas referentiell integritet. Detta innebär stöd för utländska nycklar (RDBMS) och relationsbegränsningar, vilket MyISAM inte har (DMBS).
  • InnoDB stöder transaktioner, vilket innebär att du kan göra en transaktion och återgå till det föregående. MyISAM stöder inte detta.
  • InnoDB är mer tillförlitligt eftersom det använder transaktionsloggar för automatisk återställning. MyISAM nyttjar inte sådana loggar.

Använder du MyISAM eller InnoDB?

Om du kör på en ganska ny WordPress-webbplats så är chansen stor att du redan använder MySQL-lagringsmotorn InnoDB. Men om du har en äldre WordPress-webbplats så bör du kanske göra en snabb kontroll. Vissa webbplatser kan till och med ha blandade och matchade MyISAM- och InnoDB-tabeller, där du kan se förbättringar genom att konvertera dem alla. Följ dessa enkla steg nedan för att kontrollera.

Steg 1

Logga in på phpMyAdmin och klicka dig in i din mySQL-databasen.

Steg 2

Gör en snabb genomgång eller sortering av kolumnen ”Typer” så kan du se vilka Lagringsmotor-typer som dina tabeller använder. I exemplet nedan så kan du se att två av tabellerna fortfarande använder MyISAM.

Hitta MyISAM-tabeller
Hitta MyISAM-tabeller

Du kan alternativt köra en sökfråga för att se om det finns några myISAM-tabeller. Ersätt ”database” med ditt databasnamn.

SELECT TABLE_NAME,
 ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'

Konvertera MyISAM till InnoDB med phpMyAdmin

Det är ganska enkelt att konvertera MyISAM till InnoDB. Exemplet nedan använder tabellen wp_comments. Kör helt enkelt ALTER-kommandot för att konvertera den till InnoDB-lagringsmotorn. Obs: Vi rekommenderar alltid att du säkerhetskopierar din MySQL-databas innan du kör några åtgärder på den.

ALTER TABLE wp_comments ENGINE=InnoDB;
Se till att du kör MySQL 5.6.4 eller senare, annars så kan du stöta på problem i och med att fulltext-indexering ännu inte stöds av InnoDB. Om du är Kinsta-kund så behöver du inte oroa dig för detta.

Du kan alternativt även konvertera dem manuellt med phpMyAdmin. Klicka helt enkelt på myISAM-tabellen, klicka på fliken ”Operationer” och ändra lagringsmotorn.

Konvertera MyISAM till InnoDB
Konvertera MyISAM till InnoDB

Konvertera MyISAM till InnoDB med WP-CLI

WP-CLI är ett kommandoradsverktyg för utvecklare för att hantera vanliga uppgifter (och ovanliga) i en WordPress-installation. Kolla in den här artikeln om hur du konverterar MyISAM till InnoDB med WP-CLI.