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
- Använder du MyISAM eller InnoDB?
- Konvertera MyISAM till InnoDB med phpMyAdmin
- Konvertera MyISAM till InnoDB med WP-CLI
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.
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;
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 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.