Expertul WEB pentru începători
Cu siguranță orice web constructor novice este stabilit într-o astfel de întrebare - cum să construiască propria bază de date, astfel încât atunci când sarcina crește site-ul web pentru a lucra în mod eficient, și nu a început să încetinească. De fapt, totul este foarte simplu: încetini site-urile sale de lucru nu se datorează pentru a încărca script-ul de pe procesor, dar din cauza serverul MySQL, care nu funcționează bine. Și acum vom încerca să rezolvăm această problemă.
Metoda de accelerare a MySQL prin împărțirea datelor în tabele
Pentru a începe cu noi definim relația cu tabele MySQL, și devine clar că, la momentul intrării în tabel, de exemplu, INSERT, masa este blocată, deoarece viteza de înregistrare devine prea mică, iar starea de tabele nu le permite să citească din datele înainte de sfârșitul procesului de înregistrare. Se poate dovedi că, la momentul scrierii serverul MySQL va fi blocat pentru o lungă perioadă de timp, ca o masă, iar la restul scripturilor.
De exemplu, mai jos este un tabel de știri de acest tip:
De fiecare dată când va fi tratat la știri, script-ul afișează știri în sine și crește câmpul de interogare VEDERI UPDATE tabel «STIRI» VEDERI set = VEDERI + 1 unde id = ID. Prin urmare, numărul de actualizări este destul de mare, iar fiecare actualizare va bloca de masă, precum și toate celelalte operații vor fi difuzate să aștepte finalizarea operațiunii. Se pune întrebarea: în cazul în care masa este foarte mare și toate procesele încep să eșueze din cauza suprasolicitării, cum să găsească o cale de ieșire din această situație? Răspunsul este acesta: trebuie să faceți mai multe în locul unei mese și să le clasificați în funcție de tipul de aplicație. Un tabel este numai pentru ieșire, cel de-al doilea este pentru actualizări, de exemplu.
În ceea ce privește știrile, este mai bine să le păstrați într-o masă complet diferită, în care nu există câmpuri VIEWS. Astfel, masa de știri va fi stocată în cache și afișată foarte rapid, iar actualizarea tabelului COUNT va fi foarte rapidă, deoarece va fi destul de ușor. Acest tip de diviziune a meselor ajută la accelerarea semnificativă a activității serverului MySQL, deoarece multe cereri mai mici răspund mult mai repede decât una lungă și voluminoasă.
Accelerați MySQL de DELAYED
Un alt sfat util în ceea ce privește tabelele este că, pentru a evita blocarea mesei, este mai bine să utilizați operația DELAYED, care ajută serverul să răstoarne întregul flux de informații în modul de așteptare. Această metodă este potrivită pentru toate tipurile de tabele cumulate, deoarece în acest caz nu contează când vor funcționa modificările - instantaneu sau în câteva secunde.
Pentru toate cele de mai sus, trebuie adăugat că operația UPDATE include trei etape: găsirea ce se va schimba, actualizarea indexurilor și scrierea datelor. Și dacă există indicii, atunci operația este stocată în cache și necesită puțin timp pentru executarea ei. Și devine clar că masa mare va încetini când UPDATE, INSERT se execută foarte repede și se pare că funcționarea meselor principale este posibilă numai în modul de ieșire.
Dacă efectuați o interogare SELECT * FROM, vi se solicită toate datele din tabel, dar este mai eficient să utilizați numele exact al câmpului cerut de script. De asemenea, puteți accelera ieșirea folosind directiva LIMIT.
Mai mult decât atât, utilizarea indicelui viteze foarte mult procesul de ieșire a datelor din tabele. Există un anumit tip de câmpuri pentru diferite înregistrări: un tip TINYINT este de 1 octet, care este cel mai rapid, MEDIUMINT tabele - foi de calcul mai repede cu INT, VARCHAR se transformă CHAR mai lent.
Rezultatele accelerației MySQL
Astfel, se poate spune că pentru majoritatea site-urilor toate sfaturile menționate mai sus pentru utilizarea MySQL sunt potrivite. Este necesar să încercați să separați operațiunile de fundal și interactive unul de celălalt, deoarece în fundal puteți să vă pregătiți în mod eficient conținutul.
În general, principalul lucru pentru a ține departe de acest sfat - este că fie că este vorba o intervenție chirurgicală sau de masă, tot ce trebuie să se împartă în părți, pe lucrurile mici, nu poți arunca totul într-un singur tabel, atunci interogările vor fi suspendate. Eficace va simplifica totul până la cele mai mici detalii.
Informații suplimentare despre acest subiect
Instrucțiuni cu exemple, cum să utilizați în mod corespunzător variabilele în PHP