Czy najlepiej jest zapytać przy użyciu keys_only = True, a następnie get_multi lub po prostu pełnego zapytania?
Używam NDB z pythonem 2.7 z włączonym trybem threadafe.
Rozumiem, że zapytania do podmiotów z NDB nie używają lokalnej pamięci podręcznej lub memcache, ale trafiają bezpośrednio do magazynu danych w przeciwieństwie do pobierania według nazwy klucza. (Reszta pytania może być zbędna, jeśli to założenie jest nieprawidłowe.)
Czy dobrym paradygmatem byłoby więc tylko zapytanie z keys_only = True, a następnie get_multi, aby uzyskać pełne jednostki?
Korzyści byłyby takie, że keys_only = Prawdziwe zapytania są znacznie szybsze niż keys_only = Fałsz, get_multi może potencjalnie po prostu trafić memcache i wywołując get_multi, twoje jednostki są teraz zapisywane w memcache na wypadek, gdybyś musiał wykonać zapytanie ponownie.
Wadą jest to, że masz teraz wywołanie zapytania RPC + wywołanie get_multi i myślę, że istnieje ograniczenie, w jaki sposób jednostki, które możesz wywołać w jednym get_multi, dlatego Twój efektywny rozmiar zapytania może być ograniczony.
Co myślisz? Czy powinniśmy zapytać tylko za pomocą keys_only = True, a następnie wykonać get_multi? Czy istnieją pewne minimalne i maksymalne limity wielkości zapytań, które sprawiają, że ta technika nie jest tak skuteczna, jak tylko wykonanie zapytania zwracającego pełne jednostki?