Puncte:-1

În ceea ce privește modul în care marile companii își creează bazele de date

drapel in

Încerc să înțeleg cum își configurează infrastructura companiile care gestionează cereri mari de baze de date. Am creat recent câteva aplicații Python care stochează date în PostGres și solicitările de citire/scriere necesită timp; deoarece nu sunt stocate pe RAM și sunt blocate masiv la viteză. Ceea ce ar funcționa în continuare dacă numărul de utilizatori este mai mic de 10 și chiar și cu 100 la coadă ar putea funcționa, dar cu mii de solicitări, cum sunt stocate datele, deoarece ar încetini în timpul citirii și scrierii.

Într-un proiect recent de site la care lucrez, am avut ideea să citesc întreaga bază de date și să o stochez în panda și să scriu periodic intrările modificate în baza de date. Această abordare pare periculoasă în situațiile în care dacă sistemul de operare se prăbușește și trebuie repornit, acest lucru ar duce la pierderea datelor.

Aceasta este abordarea companiilor mari? Unde au citit întreaga bază de date în RAM? Dacă nu ați putea, vă rugăm să ne sfătuiți ce modalități posibile aș putea gestiona date mari pentru, de exemplu, un site web de blog, unde timpul de citire/scriere ar putea fi redus.

Chiar dacă mă poți îndruma către pagini unde mă pot educa mai mult despre asta, ar fi suficient. Mulțumiri

drapel us
Rob
*„Am avut ideea să citesc întreaga bază de date”* - Este cam la fel de eficient ca să comanzi toate cărțile de la Amazon, să aștepți ca acestea să fie livrate și apoi, după ce teancurile tale de cărți au fost comandate după culoarea copertei, aruncând toate cărțile care nu sunt despre proiectarea bazelor de date pentru manechini și proiectarea de aplicații cu date intensive. - Schema bazei de date și proiectarea interogărilor sunt mult mai importante pentru performanța cu seturi mari de date, deși hardware-ul suficient de supradimensionat și reglarea serverului vor compensa adesea (pentru un timp) destul de bine programarea proastă și mediocră.
drapel us
Rob
Există destul de multe arhitecturi din viața reală discutate la http://highscalability.com/start-here/ - nu toate acestea vi se vor aplica și nu veți găsi cod acolo, dar conceptele și soluțiile și design-urile sunt adesea destul de educational.
drapel us
100 de utilizatori este aproape nimic. Gestionăm aproximativ 200 de milioane de tranzacții (destul de complexe) zilnic pentru câteva milioane de utilizatori. Dar fiecare interogare este optimizată pentru performanță.
drapel br
"Este aceasta abordarea companiilor mari? Unde citesc întreaga bază de date în RAM?" - Da, cam, în general, dacă setul de date trebuie să fie în întregime în memorie, atunci probabil că ați refactoriza DB pentru a lucra pe un sistem NoSQL.
Puncte:3
drapel al
fvu

Chiar și serverele relativ mici sunt capabile să execute sute de interogări pe secundă.

Prin urmare, cred că este o premieră, major blocajul este cauzat de reglarea necorespunzătoare a instanței dvs. Postgres. Există o mulțime de parametri reglabili, săriți PGtune pentru a obține o melodie bună de început.

Apoi, aruncați o privire la întrebările dvs. Aveți indecși care acoperă majoritatea interogărilor? Rulați interogările cu explica (de ex. în pgAdmin) și vedeți cât de eficienți sunt

Apoi, verificați dacă interogările dvs. returnează dimensiunile adecvate ale setului de date. Nu este nevoie să returnați un tabel întreg dacă doriți doar o înregistrare. În acest caz, optimizați-vă interogările.

Vedeți, există o lot poți face înainte de a fi nevoit să apelezi la tehnici mai exotice, complicate și adesea mai fragile.

În ceea ce privește comentariul dvs.: în special pentru postgres the wiki are niste informatii interesante. Oricum, o doză sănătoasă de citire a manualului fin este de asemenea crucială. Motoarele de baze de date sunt piese bune de inginerie și ar trebui să înțelegeți puțin din ceea ce se întâmplă sub capotă pentru a le gestiona cu adevărat bine. Și există și câteva vești proaste: reglarea bazei de date depinde în mare măsură de dimensiunea bazei de date, de modul și de cât de eficient este accesată, în scenariile din lumea reală, vei fi în permanență cu ochii pe modul în care funcționează și ce acțiuni ar putea îmbunătăți situația. . Folosim pgBadger pentru multe dintre sarcinile de analiză.

Slartibartfast avatar
drapel in
Ați putea vă rog să-mi recomandați o resursă online de unde să pot afla mai multe despre optimizarea bazei de date?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.