MySQL este un sistem de gestionare a bazelor de date relaționale SQL open source, dezvoltat și susținut de Oracle.

Acesta este răspunsul scurt, într-o singură frază, la întrebarea „ce este MySQL?”, dar haideți să descompunem răspunsul în termeni care sunt puțin mai prietenoși cu oamenii.

O bază de date este doar o colecție structurată de date care sunt organizate pentru a fi ușor utilizate și preluate. Pentru un site WordPress, acele „date” sunt lucruri precum textul postărilor dumneavoastră de pe blog, informații pentru toți utilizatorii înregistrați pe site-ul dumneavoastră, date încărcate automat, configurații importante ale setărilor etc.

MySQL este doar un sistem popular care poate stoca și gestiona datele respective pentru dumneavoastră și este o soluție de bază de date deosebit de populară pentru site-urile WordPress.

Ce este MySQL? În detaliu

MySQL a fost lansat inițial în 1995. De atunci, a trecut prin câteva modificări ale proprietății / administrării, înainte de a ajunge la Oracle Corporation în 2010. În timp ce Oracle este responsabil acum, MySQL este încă un software de tip open source, ceea ce înseamnă că îl puteți utiliza și modifica gratuit.

Numele vine de la alăturarea „My” – numele fiicei co-fondatorului – cu SQL – prescurtarea limbajului de interogare structurat, acesta este un limbaj de programare care vă ajută să accesați și să gestionați datele într-o bază de date relațională.

Pentru a înțelege cum funcționează MySQL, este important să cunoaștem două concepte conectate:

  • Baze de date relaționale
  • Modelul client-server

Baze de date relaționale

Când vine vorba de stocarea datelor într-o bază de date, există diferite abordări pe care le puteți utiliza.

MySQL optează pentru o abordare numită bază de date relațională.

Cu o bază de date relațională, datele dumneavoastră sunt împărțite în mai multe zone de stocare separate – numite tabele – în loc să aruncați totul împreună într-o mare unitate de stocare.

De exemplu, să spunem că doriți să stocați două tipuri de informații:

Clienții – numele lor, adresa, detaliile etc.

Comenzi – cum ar fi produsele care au fost achiziționate, prețul, cine a făcut comanda etc.

Dacă ați încerca să adăugați toate aceste date într-un singur vas mare, veți avea câteva probleme precum:

Date diferite – datele pe care trebuie să le colectați pentru o comandă sunt diferite decât cele pentru un client.

Date duplicate – fiecare client are un nume și fiecare comandă are și numele unui client. Manevrarea acestor date duplicate devine dezordonată.

Fără organizare – cum conectați în mod fiabil informațiile comenzii la informațiile clienților?

Pentru a rezolva aceste probleme, o bază de date relațională ar folosi un tabel separat pentru clienți și un alt tabel separat pentru comenzi.

Cu toate acestea, probabil că doriți și să puteți spune „arată-mi toate comenzile pentru John Doe”. Aici intervine partea relațională.

Folosind unele cuvinte „cheie”, puteți să conectați datele din aceste două tabele împreună, astfel încât să puteți manipula și combina datele din tabele diferite, după cum este necesar. Este important să rețineți că o cheie nu este numele clientului. În schimb, veți folosi ceva 100% unic, precum un număr de identificare numerică.

Dacă v-ați uitat vreodată la baza de date a site-ului dumneavoastră WordPress, veți vedea că folosește acest model relațional, toate datele dumneavoastră fiind împărțite în tabele separate.

În mod implicit, WordPress folosește 12 tabele separate, dar multe plugin-uri WordPress vor adăuga și propriile lor tabele. De exemplu, baza de date pentru unele site-uri WordPress au chiar și 44 de tabele separate!

Pentru a clarifica și mai bine acest concept relațional, haideți să-l facem specific pentru WordPress …

WordPress stochează postările de pe blog în tabelul wp_posts iar utilizatorii în tabelul wp_users. Cu toate acestea, deoarece aceste două tabele sunt conectate printr-o cheie, puteți conecta fiecare cont de utilizator cu toate postările de blog pe care le-a scris utilizatorul respectiv.

Iată cum arată asta în baza de date.

Fiecărui post i se atribuie un post_autor, care este un număr de identificare unic (aceasta este cheia).

Apoi, dacă doriți să vedeți ce cont de utilizator corespunde acestui număr, puteți consulta ID-ul din tabelul wp_users.

Cheia – numărul de identificare – este ceea care leagă totul împreună. 

Și așa sunt „legate” datele între ele, în ciuda stocării lor în tabele separate.

Modelul Client-Server

Dincolo de a fi un sistem relațional de baze de date, MySQL folosește și ceva numit modelul client-server.

Partea serverului este locul în care se află datele dumneavoastră. Cu toate acestea, pentru a accesa aceste date, trebuie să le solicitați. Aici intervine clientul.

Folosind SQL – limbajul de programare menționat mai devreme – clientul trimite o solicitare serverului de baze de date pentru datele de care are nevoie clientul.

De exemplu, dacă cineva vizitează o postare de pe blogul dumneavoastră pe site-ul dumneavoastră, site-ul dumneavoastră WordPress va trimite mai multe solicitări SQL serverului de baze de date pentru a obține toate informațiile de care are nevoie pentru a livra postarea blogului pe browserul web al vizitatorului. 

Aceste solicitări ar fi:

  • Interogați tabelul wp_posts pentru a obține conținutul pentru postarea pe blog
  • Interogați tabelul wp_users pentru a obține informații pentru caseta de autor.

Dacă doriți să vedeți exact ce tipuri de solicitări de baze de date sunt efectuate de site-ul dumneavoastră WordPress, puteți utiliza un plugin gratuit numit Query Monitor pentru a vedea interacțiunea exactă dintre site-ul dumneavoastră WordPress (clientul) și serverul de baze de date.

O altă soluție premium pe care o puteți utiliza este New Relic. 

Mulți ingineri folosesc frecvent acest instrument pentru a rezolva problemele de performanță pe un site WordPress care s-ar putea datora unei interogări lente MySQL.

Calitatea serviciilor de mentenață oferită de firmele de hosting este foarte importantă, de aceea vă recomandăm serviciile de hosting ale profesioniștilor de la THC Hosting