Повышает ли биннинг для монотонно увеличивающегося значения производительность Google Cloud Spanner?

Google Cloud Spanner рекомендует нам избегать размещения индекса в монотонно увеличивающемся (не PK) столбце, таком как временные метки (https://cloud.google.com/spanner/docs/schema-design), но моя спецификация требует запрашивать (монотонно увеличивающийся) столбец отметки времени.

Я планирую обойти это ограничение, разбивая временную ось каждые 1 минуту (т.е. 10:00:35 - ›10:00:00). Это нормально работает для Google Cloud Spanner?


person Yuki Hashimoto    schedule 02.07.2020    source источник
comment
Не могли бы вы уточнить, что вы имеете в виду, говоря о временной оси? Каков первичный ключ таблицы (или определение индекса)? Спасибо.   -  person Rose Liu    schedule 07.07.2020
comment
Я планирую добавить индекс в столбец отметок времени, спасибо!   -  person Yuki Hashimoto    schedule 07.07.2020
comment
Прошу прощения, если я не понимаю схему. Как правило, не рекомендуется использовать столбец с меткой времени в качестве первого столбца индекса, потому что, поскольку вставки выполняются в возрастающем порядке меток времени, они могут активировать точку доступа к единственному серверу, обслуживающему конец пространства ключей. Один из вариантов смягчения этой точки доступа - использовать сегментирование: cloud.google.com/spanner / docs / schema-design # fix_hash_the_key Это также может потребовать изменения запроса для запроса меток времени (в желаемом диапазоне) для всех сегментов в соответствии с вариантом использования. Спасибо.   -  person Rose Liu    schedule 07.07.2020


Ответы (1)


Как правило, не рекомендуется использовать столбец с меткой времени в качестве первого столбца индекса, потому что, поскольку вставки выполняются в возрастающем порядке меток времени, они могут активировать точку доступа к единственному серверу, обслуживающему конец пространства ключей. Один из вариантов смягчения этой точки доступа - использовать сегментирование: https://cloud.google.com/spanner/docs/schema-design#fix_hash_the_key.

Это также может потребовать изменения запроса для запроса меток времени (в желаемом диапазоне) для всех сегментов в соответствии с вариантом использования.

person Rose Liu    schedule 09.07.2020
comment
Спасибо за любезный ответ! Итак, могу ли я создавать запросы, которые используют столбец отметки времени (например, получение последней записи) с тем же номером, что и осколки? - person Yuki Hashimoto; 10.07.2020
comment
да. Чтобы получить глобальное представление о последних отметках времени по всем шардам, вам нужно будет запросить все шарды. - person Rose Liu; 13.07.2020