Kiedy należy osadzać lub odwoływać się do danych
W poprzedniej lekcji osadzono dane dotyczące adresu klienta i hasła w nowym dokumencie klienta. Ta akcja zmniejsza liczbę żądań, co zwiększa wydajność i zmniejsza koszty. Jednak nie zawsze można osadzać dane. Istnieją reguły dotyczące osadzania danych w dokumencie zamiast odwoływania się do nich w innym wierszu.
Kiedy należy osadzać dane?
Osadź dane w dokumencie, gdy do danych mają zastosowanie następujące kryteria:
- Odczytywanie lub aktualizowanie razem: dane, które są odczytywane lub aktualizowane razem, są prawie zawsze modelowane jako pojedynczy dokument. Zmniejsza to liczbę żądań, które są naszym celem w efektywnej wydajności. W naszym scenariuszu wszystkie jednostki klienta są odczytywane lub zapisywane razem.
- Relacja 1:1: Na przykład Klient i CustomerPassword mają relację 1:1.
- 1:Kilka relacji: W bazie danych NoSQL należy odróżnić relacje 1:Wiele jako powiązanych lub niezwiązanych. Klient i CustomerAddress mają powiązaną relację 1:Wiele, ponieważ klienci w aplikacji do handlu elektronicznego zwykle mają tylko kilka adresów do wysłania. Gdy relacja jest powiązana, jest to relacja 1:Kilka.
Kiedy należy odwoływać się do danych?
Dane referencyjne są oddzielnymi dokumentami, gdy do danych mają zastosowanie następujące kryteria:
Odczytywanie lub aktualizowanie niezależnie: jest to szczególnie istotne w przypadku łączenia jednostek, które mogłyby spowodować duże dokumenty. Aktualizacje w usłudze Azure Cosmos DB wymagają zastąpienia całego elementu. Jeśli dokument zawiera kilka właściwości, które są często aktualizowane wraz z dużą liczbą głównie właściwości statycznych, znacznie bardziej wydajne jest podzielenie dokumentu na dwa. Następnie jeden dokument zawiera mniejszy zestaw właściwości, które są często aktualizowane. Drugi dokument zawiera statyczne, niezmienne wartości.
1:Wiele relacji: jest to szczególnie prawdziwe, jeśli relacja jest niezwiązana. Jeśli masz dokument, który zwiększa rozmiar nieznany lub nieograniczony czas, koszty i opóźnienia dla tych aktualizacji będą nadal rosnąć. Wynika to z rosnącego rozmiaru aktualizacji kosztujących więcej JEDNOSTEK RU/s i ładunków przechodzących przez sieć, która sama jest nieefektywna.
Wiele:wiele relacji: zapoznamy się z przykładem tej relacji w kolejnej lekcji z tagami produktów.
Rozdzielenie tych właściwości zmniejsza zużycie przepływności w celu zwiększenia wydajności. Zmniejsza również opóźnienia w celu uzyskania lepszej wydajności.