2

Это well documented, что быстрая запись в сущность с монотонно возрастающими значениями в качестве ключевых или индексированных свойств - плохая идея для производительности.Индексирует логическое или enum-подобное свойство в Datastore плохую идею для быстрой записи?

Как насчет индексирования сущностей по логическим свойствам или свойствам с такими перечисляемыми значениями, как Genders?

Мое предположение заключается в индексировании свойства с низкой способностью, вероятно, будет страдать от той же проблемы, потому что для таких свойств нет встроенного типа. Но, может быть, существует специальное лечение для булевых свойств?

ответ

1

Облачный хранилище данных имеет оптимизацию для данных с низкой мощностью, таких как логические и перечисления. Каждая запись индекса также содержит ключ сущности, который затем позволяет нашим базовым таблицам Bigtable эффективно разбивать и, следовательно, обрабатывать большую нагрузку. Это работает, так как нам не нужно рассматривать порядок сортировки для одного и того же значения, поэтому их случайное распределение в пределах их собственного пространства ключей не имеет никакого отношения к запросам, и ключ сущности гарантированно будет уникальным, поэтому мы избегаем столкновений.

Когда мы индексируем значение, мы также добавляем свойство «разбрасывать ключ» в конец, которое по существу является рандомизированным целым числом. Затем этот ключ разброса можно использовать для разделения запросов, позволяя таким вещам, как Cloud Dataflow, эффективно распараллеливать запросы к этому набору данных.

+0

Спасибо, Дэн. Просто любопытно, поскольку Datastore не поддерживает объявление типа Enum, как вы знаете, какое свойство применять для оптимизации? Позвольте мне снова угадать. Я могу видеть, как этот метод может также применяться к любым свойствам короткого текста, которые нуждаются в индексировании. Возможно, это не поможет в крайнем случае, когда все значения уникальны, но это не повредит. –

+0

Перечислим, я имел в виду enum-like в соответствии с вашим вопросом. Да, это может применяться везде. –

Смежные вопросы