Pochodzę ze świata Relational Database, a potem znalazłem ten magazyn danych. zrozumienie go zajęło kilka dni. cóż, niektóre z moich ustaleń.
Musisz już wiedzieć, że magazyn danych jest zbudowany na skalę i to właśnie go oddziela od RDMBS. Aby skalować lepiej przy użyciu dużego zestawu danych, App Engine dokonał pewnych zmian (niektóre oznaczają wiele zmian).
Struktura magazynu danych RDBMS VS.
W bazie danych zwykle strukturyzujemy nasze dane w tabelach. Wiersze znajdujące się w magazynie danych stają się rodzajami i jednostkami .
Relacje
W RDBMS, większość ludzi przestrzega relacji jeden do jednego, wiele do jednego, wiele do wielu, w magazynie danych, ponieważ ma „Brak połączeń”, ale nadal możemy osiągnąć naszą normalizację za pomocą „ ReferenceProperty „np . przykład relacji jeden do jednego .
Indeksy
Zwykle w RDMBS tworzymy indeksy, takie jak klucz główny, klucz obcy, klucz unikalny i klucz indeksu, aby przyspieszyć wyszukiwanie i zwiększyć wydajność naszej bazy danych. W magazynie danych musisz utworzyć co najmniej jeden indeks dla każdego rodzaju (automatycznie wygeneruje to, czy ci się to podoba, czy nie), ponieważ magazyn danych przeszukuje twoją jednostkę na podstawie tych indeksów i uwierz mi, że to najlepsza część. W RDBMS możesz wyszukiwać za pomocą pole nieindeksowane, choć zajmie to trochę czasu, ale będzie. W magazynie danych nie można wyszukiwać za pomocą właściwości nieindeksowanej.
Policz
W RDMBS łatwiej jest liczyć (*), ale w magazynie danych, nawet nie myśl o tym w normalny sposób (tak, istnieje funkcja zliczania), ponieważ ma limit 1000 i będzie kosztować tyle samo małych operacji, co jednostka, która nie jest dobre, ale zawsze mamy dobry wybór, możemy użyć Liczników Odłamków .
Unikalne ograniczenia
W RDMBS, kochamy tę funkcję, prawda? ale Datastore ma swoją własną drogę. nie można zdefiniować właściwości jako unikalnej :(.
Kwerenda
GAE Datatore zapewnia lepszą funkcjonalność LIKE (o nie! Magazyn danych nie ma LIKE słowa kluczowego) SQL, którym jest GQL .
Wstawianie / aktualizowanie / usuwanie / wybieranie danych
To miejsce, w którym wszyscy jesteśmy zainteresowani, ponieważ w RDMBS potrzebujemy jednego zapytania o wstawianie, aktualizację, usuwanie i wybieranie, tak jak RDBMS, magazyn danych umieścił, usunął, dostał (nie bądź zbyt podekscytowany), ponieważ magazyn danych umieścić lub uzyskać w zakresie zapisu, odczytu, małych operacji ( koszty odczytu w przypadku wywołań do magazynu danych ) i to tam, gdzie rozpoczyna się modelowanie danych. musisz zminimalizować te operacje i utrzymać działanie aplikacji. Do operacji zmniejszania odczytu możesz użyć Memcache .