MySQL är ett öppen källkods SQL-relationsdatabashanteringssystem som är utvecklat och stöds av Oracle.

Det är det korta svaret på frågan ”Vad är MySQL”, men låt oss bryta ner det i termer som är lite mer människovänliga.

En databas är en strukturerad samling data som är organiserad för enkel användning och hämtning. För en WordPress-webbplats är dessa ”data” saker som texten i dina blogginlägg, information för alla registrerade användare på din webbplats, autoladdade data, viktiga inställningar,

MySQL är helt enkelt ett populärt system som kan lagra och hantera dessa data åt dig, och det är en särskilt populär databaslösning för WordPress-webbplatser.

Lästips: Så här åtgärdar du ”MySQL-servern har försvunnit”-felet i WordPress och Så här åtgärdar du MySQL 1064-felet.

Låt oss gå in lite djupare i frågan nu.

Vad är MySQL? Mer Detaljerat

MySQL lanserades ursprungligen redan 1995. Sedan dess har det gått igenom ett par förändringar gällande ägande/förvaltarskap, innan de hamnade på Oracle Corporation i 2010. Medan Oracle är de som bestämmer nu är MySQL fortfarande öppen källkod, vilket innebär att du fritt kan använda och ändra den.

mysql-logo
MySQL logotyp (bildkälla: MySQL/Oracle)

Namnet kommer från att sätta ihop ”My” – namnet på medgrundarens dotter – med SQL – förkortningen för Structured Query Language, vilket är ett programmeringsspråk som hjälper dig att komma åt och hantera data i en relationsdatabas.

För att förstå hur MySQL fungerar är det viktigt att kunna två närliggande begrepp:

Relationsdatabaser

När det gäller att lagra data i en databas finns det olika tillvägagångssätt.

MySQL väljer ett tillvägagångssätt som kallas en relationsdatabas.

Med en relationsdatabas delas dina data upp i flera separata lagringsområden – kallade tabeller – istället för att kasta in allt i en stor lagringsenhet.

Låt oss till exempel säga att du vill lagra två typer av information:

  • Kunder – deras namn, adress, detaljer etc.
  • Beställningar – vilka produkter som köptes, priset, vem gjorde beställningen, etc.

Om du försökte klumpa ihop alla data tillsammans i en stor hög, skulle du få några problem som:

  • Olika data – de data som du behöver samla in för en beställning är annorlunda än för en kund.
  • Dublettdata – varje kund har ett namn, och varje beställning har också namnet på en kund. Hantering av dubblettdata blir rörigt.
  • Ingen organisation – hur kopplar du på ett tillförlitligt sätt beställningsinformation till kundinformation?

För att lösa dessa problem skulle en relationsdatabas använda en separat tabell för kunder och en annan separat tabell för beställningar.

Men du skulle förmodligen också vilja kunna säga ”visa mig alla beställningar för John Doe”. Det är där relationsdelen kommer in.

Med hjälp av något som kallas en ”nyckel” kan du länka samman data från dessa två tabeller så att du kan manipulera och kombinera data i olika tabeller efter behov. Det är viktigt att notera att en nyckel inte är kundens namn. Istället skulle du använda något 100% unikt, som ett numeriskt ID-nummer.

Om du någonsin har tittat på din WordPress-webbplats databas ser du att den använder denna relationsmodell och har alla dina data uppdelade i separata tabeller.

Som standard använder WordPress 12 separata tabeller, men många WordPress-plugins kommer också att lägga till egna tabeller. Till exempel har databasen för WordPress-webbplatsen nedan 44 separata tabeller!

Ett exempel på olika tabeller i MySQL
Ett exempel på olika tabeller i MySQL

För att avrunda detta relationskoncept, låt oss göra det specifikt för WordPress…

WordPress lagrar blogginlägg i wp_posts-tabellen och användare i wp_users-tabellen. Men eftersom dessa två tabeller är anslutna med en nyckel kan du länka varje användarkonto med alla blogginlägg som varje användare har skrivit.

Så här ser det ut i databasen.

Varje inlägg tilldelas en post_author, som är ett unikt identifieringsnummer (detta är nyckeln):

Tabellen wp_posts
Tabellen wp_posts

Om du sedan vill se vilket användarkonto som motsvarar det numret kan du titta på ID-numret i wp_users-tabellen:

wp_users-tabellen
wp_users-tabellen

Nyckeln – ID-numret – är det som binder samman allt. Och det är så de är ”relaterade” till varandra, trots att de lagrar data i separata tabeller.

Klient-server modell

Utöver att vara ett relationsdatabassystem använder MySQL också något som kallas klient-server-modellen.

Serverdelen är där dina data faktiskt finns. För att komma åt dessa data måste du dock förfråga dem. Det är där klienten kommer in. Genom att använda SQL – programmeringsspråket vi nämnde tidigare – skickar klienten en förfrågan till databasens server för de data som klienten behöver.

Om någon till exempel besöker ett blogginlägg på din webbplats skickar din WordPress-webbplats flera SQL-förfrågningar till databasservern för att få all information den behöver för att leverera blogginlägget till besökarens webbläsare. Den skulle:

  • Förfråga wp_post-tabellen för att få innehållet för blogginlägget
  • Förfråga wp_users-tabellen för att få information om författarrutan (med hjälp av nyckeln vi visade dig ovan)
  • Osv.

Om du vill se exakt vilka typer av databasförfrågningar som görs av din WordPress-webbplats kan du använda ett underbart gratisplugin som heter Query Monitor för att se det exakta samspelet mellan din WordPress-webbplats (klienten) och databasservern:

Pluginet Query Monitor visar individuella SQL-förfrågningar som skickas till MySQL-servern
Pluginet Query Monitor visar individuella SQL-förfrågningar som skickas till MySQL-servern

En annan premiumlösning som du kan använda är New Relic (licens krävs). Om din WordPress-webbplats inte kan komma åt databasservern, utlöses meddelandet om det vanliga felet om att upprätta ett databasanslutning. På Kinsta använder vi det inbyggda Kinsta APM-verktyget för att övervaka dina webbplatser.

Kinsta använder MariaDB, inte MySQL: Vad är skillnaden?

Här på Kinsta använder vi ett databassystem som heter MariaDB, inte MySQL. Men alla samma egenskaper som vi visat dig med MySQL gäller också för MariaDB.

Faktum är att MariaDB faktiskt är en fork av MySQL, och MariaDBs ledande utvecklare är en av de ursprungliga grundarna till MySQL. En ”fork” innebär att MariaDB-utvecklarna tog den ursprungliga öppna källkoden från MySQL som sin bas och byggde sedan vidare på den för att skapa MariaDB.

Så medan den har ett annat namn är MariaDB tätt kopplad till MySQL och erbjuder full ”drop-in”-ersättningskapabilitet (du kan alltså sömlöst byta från MySQL till MariaDB utan att behöva vidta några särskilda försiktighetsåtgärder).

Men medan MariaDB erbjuder driftskompatibilitet med MySQL, erbjuder det också förbättrad prestanda inom vissa områden, vilket passar med vår filosofi att alltid använda den bästa arkitekturen för att driva din WordPress-webbplats.

Sammanfattning: Vad är MySQL?

MySQL är ett öppen källkods hanteringssystem för relationsdatabaser. För WordPress-webbplatser betyder det att det blir enklare att lagra alla dina blogginlägg, användare, plugininformation, etc.

Den lagrar den informationen i separata ”tabeller” och förbinder dem med ”nycklar”, varför databasen kallas relationell.

När din WordPress-webbplats behöver komma åt den informationen skickar den en förfrågan till MySQL-databasservern med SQL (det här är klient-server-modellen).

Kinsta använder MariaDB, inte MySQL. MariaDB är dock en fork av MySQL från en av grundarna av MySQL och erbjuder drop-in-ersättnings driftskompatibilitet, liksom vissa prestandaförbättringar. Därför gäller alla kärnkoncepten i denna artikel även för MariaDB.

Om du är kund hos Kinsta erbjuder vi .både direkt databasåtkomst, samt möjligheten att använda databashanteringsverktyg som phpMyAdmin.