App Engine - хранилище данных - индексирование - PullRequest
0 голосов
/ 16 августа 2010

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

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

По сути, мой вопрос сводится к:

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

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

1 Ответ

4 голосов
/ 17 августа 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...