Bezdepbonusu7Программирование: статьи и ответы

Вопрос

App Engine - хранилище данных - индексирование

Автор вопроса: RahulОтветов: 1

Это общий вопрос об индексации хранилища данных App Engine. Хранилище данных автоматически создает индексы, которые можно использовать для простых запросов с одним свойством (запросов, не использующих составные ключи).

Зависят ли накладные расходы при создании этого индекса от базового типа данных свойства объекта?

По сути мой вопрос сводится к следующему:

def Person(db.Model):
  name = db.StringProperty()
  rollnumber = db.IntegerProperty()

Меньше ли накладные расходы на индексирование свойства rollnumber по сравнению со свойством name?

datastoregoogle-app-engineindexing

Ответы

Ответ 1 · рейтинг 5 · Nick Johnson

Пространство, необходимое для индексации значения, состоит из:

  • Размер самого значения,
  • Если это переменная длина, например строка, от 1 до 3 байтов для хранения длины значения.
  • Размер имени (например, 'rollnumber') плюс, опять же, несколько байтов для хранения длины.
  • Размер ключа объекта
  • Несколько дополнительных байтов служебных данных

Единственная удивительная вещь здесь заключается в том, что имя сохраняется с каждым проиндексированным свойством. Это связано с тем, что в хранилище данных нет статически определенных имен столбцов - нет схемы, поэтому ее необходимо хранить с каждым индексированным значением.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы