Când să încorporezi sau să faci referire la date
În unitatea anterioară, am încorporat adresa clientului și datele despre parolă într-un document client nou. Această acțiune reduce numărul de solicitări, ceea ce îmbunătățește performanța și reduce costurile. Cu toate acestea, nu puteți încorpora întotdeauna datele. Există reguli pentru când ar trebui să încorporați date într-un document în loc să le referiți într-un alt rând.
Când ar trebui să încorporați datele?
Încorporați date într-un document atunci când următoarele criterii se aplică datelor dvs.:
- Citite sau actualizate împreună: datele care sunt citite sau actualizate împreună sunt aproape întotdeauna modelate ca un singur document. Acest lucru reduce numărul de solicitări care sunt obiectivul nostru în a fi eficient. În scenariul nostru, toate entitățile client sunt citite sau scrise împreună.
- Relație 1:1: De exemplu, Customer și CustomerPassword au o relație 1:1.
- 1:Relații puține: Într-o bază de date NoSQL, este necesar să se distingă 1:Multe relații ca fiind limitate sau nelimitate. Customer și CustomerAddress au o relație limitată 1:Many, deoarece clienții dintr-o aplicație de comerț electronic au în mod normal doar câteva adrese către care să expedieze. Când relația este limitată, aceasta este o relație 1:Few.
Când ar trebui să faceți referire la date?
Datele de referință ca documente separate atunci când următoarele criterii se aplică datelor dvs.:
Citiți sau actualizați independent: Acest lucru este valabil mai ales atunci când combinați entități care ar avea ca rezultat documente mari. Actualizările din Azure Cosmos DB necesită înlocuirea întregului element. Dacă un document are câteva proprietăți care sunt actualizate frecvent alături de un număr mare de proprietăți în mare parte statice, este mult mai eficient să împărțiți documentul în două. Un document conține apoi setul mai mic de proprietăți care sunt actualizate frecvent. Celălalt document conține valorile statice, neschimbate.
1:Relația multi: Acest lucru este valabil mai ales dacă relația este nelimitată. Dacă aveți un document care crește în mărimea unei valori necunoscute sau nelimitate de ori, costul și latența pentru aceste actualizări vor continua să crească. Acest lucru se datorează dimensiunii tot mai mari a actualizării care costă mai mult RU/s și sarcinilor care merg peste rețea, care în sine, este, de asemenea, ineficient.
Relația Mulți:Mulți: Vom explora un exemplu al acestei relații într-o unitate ulterioară cu etichete de produs.
Separarea acestor proprietăți reduce consumul de randament pentru o mai mare eficiență. De asemenea, reduce latența pentru performanțe mai bune.