Designul obișnuit al unui site web susținut de baze de date utilizează puține (sau mult mai multe, cum ar fi 50 sau 100) interogări de baze de date pentru a genera o singură pagină web ca răspuns la o solicitare a browserului.
Fiecare dintre aceste interogări, una după alta, necesită un timp dus-întors între serverul web și serverul bazei de date. Acest lucru se poate adăuga rapid.
În schimb, conexiunea dintre browserul web și site-ul web se stabilește după o călătorie de două ori dus-întors între browser și server, iar apoi datele sunt aproape transmise către browser la fel de repede pe cât permite conexiunea.
Vezi diferenta? 2 călătorii dus-întors utilizator-server vs multiple (probabil zeci) de călătorii dus-întors server-server. Conexiunea dintre servere poate fi mai rapidă, dar nu în mare măsură.
Acesta este motivul pentru care configurația dvs. este în general inutilă.
Ce se poate face, atunci?
- Utilizați un singur server web lângă baza de date. Vremurile în care aveau servere distribuite geografic era importantă pentru a îmbunătăți experiența utilizatorului au trecut de mult pentru ceva mai puțin decât un centru global de comerț electronic sau un centru de știri.
Experiența utilizatorului de astăzi este dominată de proprietățile de conectare ale utilizatorului în primul rând și abia depinde de locația serverului web.
Da, există momente în care o conexiune principală globală este întreruptă și conexiunile dintre, de ex. China și Europa devin o adevărată durere, dar dacă se întâmplă un astfel de eveniment nefericit, conexiunea dintre serverul tău web și serverul tău db va fi la fel de afectată. Și acest lucru este de fapt mai rău decât încetinirea conexiunii dintre serverul dvs. web și utilizatorii dvs., vedeți mai sus.
Există trucuri CDN care vă pot îmbunătăți timpul de răspuns chiar și cu un singur server, arătând ca și cum aveți mai multe servere în locații diferite. Principalii furnizori de CDN precum Cloudflare sau Akamai au instrumente foarte puternice.
Utilizați replicarea bazei de date și mențineți o bază de date lângă ambele servere web. Acest lucru poate necesita o regândire profundă a designului aplicației, precum și un set de abilități mult mai larg și/sau licențe DB mai scumpe.
Verificați proprietățile conexiunii la baza de date la ambele capete (server db și server web).
- Jurnalizarea extinsă, autentificarea complexă și dn-urile inverse pe partea serverului db pot întârzia destul de mult rezultatele fiecărei interogări db.
- Utilizarea conexiunilor db persistente pe partea serverului web poate reduce interogarea db dus-întors de 2-5 ori.
- Reproiectați-vă aplicația pentru a utiliza mai puține interogări db pe pagină. Acest lucru, pe de altă parte, poate duce la interogările care devin mai complexe, mai lente și mai greu de întreținut. Kilometrajul dvs. poate varia.