Я использую NDB с python 2.7 с включенным потокобезопасным режимом.
Я понимаю, что при запросе сущностей с помощью NDB не используется локальный кеш или кеш памяти, а идет прямо в хранилище данных, в отличие от получения по имени ключа. (Остальная часть вопроса может быть излишней, если эта предпосылка неверна.)
Следовательно, будет ли хорошей парадигмой запрашивать только ключи _only=True, а затем выполнять get _multi для получения полных сущностей?
Преимущество будет заключаться в том, что ключи _only=True запросы намного быстрее, чем ключи _only=False, get _multi потенциально может просто попасть в memcache, а при вызове get _multi ваши сущности теперь сохраняются в memcache. в случае, если вам нужно сделать запрос снова.
Недостатки заключаются в том, что теперь у вас есть вызов запроса RPC + многократный вызов get _, и я думаю, что существует ограничение на количество сущностей, которые вы можете вызывать за один вызов get _multi, поэтому ваш эффективный размер запроса может быть ограничен.
Что вы думаете? Должны ли мы когда-либо запрашивать только ключи _only=True, а затем выполнять get _multi? Существуют ли определенные ограничения минимального и максимального размера запроса, которые делают этот метод менее эффективным, чем просто выполнение запроса, который возвращает полные сущности?