Când să optimizați și de ce?
Excesul de timp pentru a urca în setările serverului și pentru a modifica valorile parametrilor (mai ales dacă nu știți ce s-ar putea întâmpla), nu. Dacă luăm în considerare acest subiect din "clopotnita" de îmbunătățire a productivității resurselor web, atunci este atât de vast încât trebuie să consacră o publicație științifică completă în 7 volume.
Dar, evident, nu am răbdarea unui astfel de scriitor și aveți și cititorii. Vom face mai ușor și vom încerca doar să ne îndreptăm mai adânc în groapa optimizării serverului MySQL și a componentelor sale. Cu ajutorul setării optime a tuturor parametrilor DBMS, puteți atinge mai multe obiective:
Măriți viteza execuției interogării.
Îmbunătățiți performanța generală a serverului.
Cadrul YII2. Dezvoltare rapidă cu cadrul PHP modern
Aflați complexitatea dezvoltării web moderne cu ajutorul cadrului YII2
Reduceți timpul de așteptare pentru încărcarea paginilor de resurse.
Reduceți capacitatea de găzduire a serverului.
Reduceți cantitatea de spațiu pe disc.
Vom încerca să distrugem toate subiectele de optimizare în mai multe puncte, astfel încât a fost mai mult sau mai puțin clar, de la care fierbe "fierbătorul".
De ce să configurați un server
În MySQL, optimizarea performanței ar trebui să înceapă de la server. În primul rând, ar trebui să-și accelereze activitatea și să reducă timpul de procesare al cererilor. Un mijloc universal de a atinge toate aceste obiective este de a permite memorarea în cache. Nu știu "ce este"? Acum voi explica totul.
Dacă memoria cache este activată pe instanța serverului dvs., sistemul MySQL "memorează" în mod automat solicitarea utilizatorului. Iar data viitoare când se repetă, rezultatul acestei interogări (pentru eșantion) nu va fi procesat, ci va fi preluat din memoria sistemului. Se pare că în acest fel serverul "economisește" timp pentru emiterea unui răspuns, iar ca rezultat, rata de răspuns a site-ului este mărită. Acest lucru se aplică și la viteza de descărcare globală.
În MySQL, optimizarea interogărilor este aplicabilă acelor motoare și CMS care funcționează pe baza acestui DBMS și PHP. În acest caz, codul scris în limba de programare, pentru generarea unei pagini web dinamice, solicită din baza de date unele părți structurale și conținut (înregistrări, arhive și alte taxonomii).
Datorită caching-ului inclus în MySQL, interogările către serverul DBMS sunt mult mai rapide. Din această cauză, viteza de descărcare a întregii resurse este, de asemenea, mărită. Și acest lucru afectează în mod pozitiv atât experiența utilizatorilor, cât și poziția site-ului în această problemă.
Activați și configurați cache-ul
Dar să ne întoarcem de la teoria "plictisitoare" la practica interesantă. Optimizarea ulterioară a bazei de date MySQL va fi continuată cu verificarea stării cache a serverului dvs. de bază de date. Pentru aceasta, folosim interogarea specială pentru a afișa valorile tuturor variabilelor de sistem:
Rezultatul execuției a depășit toate așteptările noastre și a produs atât de multe variabile încât este nevoie de o săptămână întreagă pentru a le studia.
Pentru a obține datele de care aveți nevoie pentru a optimiza tabelele MySQL, ar trebui să utilizați o interogare mai "țintită" pentru anumite șiruri de caractere. De exemplu, aceasta:
Cadrul YII2. Dezvoltare rapidă cu cadrul PHP modern
Aflați complexitatea dezvoltării web moderne cu ajutorul cadrului YII2
Este o altă chestiune.
Să facem o scurtă trecere în revistă a valorilor obținute, care vor fi utile pentru optimizarea bazelor de date MySQL:
have_query_cache - valoarea indică "ON" interogarea cache sau nu.
query_cache_type - Afișează tipul de cache activ. Avem nevoie de valoarea "ON". Aceasta indică faptul că cache-ul este activat pentru toate tipurile de eșantionare (SELECT). Pe lângă cele în care este utilizat parametrul SQL_NO_CACHE (interzice stocarea informațiilor despre această solicitare).
La noi toate reglajele sunt setate corect.
Măsurăm cache-ul pentru indici și chei
Acum trebuie să verificați numărul de memorie alocat indexurilor și cheilor. Se recomandă setarea acestui parametru, important pentru optimizarea bazei de date MySQL, cu 20-30% din cantitatea de RAM disponibilă pentru server. De exemplu, dacă sunt alocate 4 "hectare" pentru o instanță DBMS, atunci puneți cu îndrăzneală 32 de metri. Dar totul depinde de caracteristicile unei anumite baze de date și de structura (tipurile) tabelelor.
Pentru a seta valoarea parametrului, trebuie să editați conținutul fișierului de configurare my.ini, care este localizat în următorul mod în Denver: F: \ Webserver \ usr \ local \ mysql-5.5
Fișierul este deschis cu Notepad. Apoi găsim în el parametrul key_buffer_size și setați calculatorul optim pentru sistemul dvs. (în funcție de hectarul RAM). După aceasta, trebuie să reporniți serverul bazei de date.
DBMS utilizează mai multe subsisteme suplimentare (nivelul inferior) și toate setările lor de bază sunt, de asemenea, specificate în acest fișier de configurare. Prin urmare, dacă aveți nevoie să optimizați MySQL InnoDB, atunci bine ați venit aici. Vom studia acest subiect în detaliu într-unul dintre următoarele materiale.
Măsurăm nivelul indiciilor
Utilizarea indexurilor în tabele mărește semnificativ viteza de procesare și formarea răspunsului DBMS la interogarea introdusă. MySQL "măsoară" constant nivelul de aplicare al indexurilor și cheilor din fiecare bază de date. Pentru a obține această valoare, utilizați interogarea:
În rezultatul obținut, suntem interesați de valoarea din linia Handler_read_key. Dacă numărul indicat este mic, atunci acest lucru indică faptul că indicele nu este aproape utilizat în această bază de date. Și acest lucru este rău (ca și al nostru).
De asemenea, nu uitați de optimizarea MySQL Explain. Cu ajutorul acestei comenzi DBMS ne explică cum să optimizăm intrarea interogării. Este indicat la începutul interogării de selecție. De exemplu:
Cadrul YII2. Dezvoltare rapidă cu cadrul PHP modern
Aflați complexitatea dezvoltării web moderne cu ajutorul cadrului YII2
Cele mai recente știri despre dezvoltarea IT și web pe canalul nostru de telegrame