Цель состоит в том, чтобы уменьшить стоимость процессора и время отклика для фрагмента кода, который выполняется очень часто и каждый раз должен выполнять db.get () несколько сотен ключей.
Это вообще работает?
Могу ли я ожидать время API db.get () с несколькими сотнями ключей
уменьшить примерно линейно, как я уменьшить размер объекта?
В настоящее время организация имеет следующие данные: 9 Строка, 9
Boolean, 8 целых, 1 GeoPt, 2 DateTime, 1 текст (средний размер ~ 100 байт
FWIW), 1 ссылка, 1 StringList (средний размер 500 байт). Цель состоит в том, чтобы
переместить подавляющее большинство этих данных в связанные классы, чтобы
основной выбор основной модели будет быстрым.
Если это работает, как это реализовано?
После рефакторинга я все равно понесу
высокая стоимость получения существующих объектов? В документации сказано что все
свойства модели выбираются одновременно. Будет старый
ненужные свойства по-прежнему переносятся через RPC на мои десять центов и пока пользователи
Подождите? Другими словами: , если я хочу сократить время загрузки моих объектов,
необходимо перенести старые сущности на новые
определение? Если это так, достаточно ли переставить () объект или я должен
сохранить под совершенно новым ключом?
Пример
Рассмотрим:
class Thing(db.Model):
text = db.TextProperty()
strings = db.StringListProperty()
num = db.IntegerProperty()
thing = Thing(key_name='thing1', text='x' * 10240,
strings = ['y'*500 for i in range(10)], num=23)
thing.put()
Допустим, я переопределил Thing для упрощения и запустил новую версию:
class Thing(db.Model):
num = db.IntegerProperty()
И я снова получаю:
thing_again = Thing.get_by_key_name('thing1')
Уменьшил ли я время выборки для этой сущности?