App Engine - DataStore - Индексирование
-
29-09-2019 - |
Вопрос
Это вопрос индексации данных о приложении приложений. Магазин данных автоматически создает индексы, которые можно использовать для простых запросов одного свойства (запросы, которые не включают в себя композитные клавиши).
Накладные расходы в создании этого индекса варьируются в основном типе данных свойства объекта?
По сути, мой вопрос сводится к:
def Person(db.Model):
name = db.StringProperty()
rollnumber = db.IntegerProperty()
Является ли индексирование накладных расходов по отношению к собственности роллемс меньше по сравнению с название?
Решение
Пространство, необходимое для индексации значения, состоит из:
- Размер самой ценности,
- Если это переменная длина, как строка, где угодно от 1 до 3 байтов для хранения длины значения
- Размер название (например, «Rollnumber»), Plus, опять же, несколько байтов для хранения длины
- Размер ключа сущности
- Несколько дополнительных байтов накладных расходов
Единственное удивительное здесь должно быть, что имя хранится с каждым индексированным свойством. Это потому, что нет никаких статически определенных имен столбцов - нет схемы - в DataStore, поэтому необходимо хранить его с каждым индексированным значением.