Я немного озадачен тем, что читаю в справке DynamoDB, когда речь заходит об их рекомендациях по разработке ключа раздела.
На на этой первой странице обсуждается распределение рабочей нагрузки они Объясните, что важно распределять нагрузку по отдельным ключам разделов, поскольку они используются для физического разделения. Имеет смысл.
Но затем, когда объясняют глобальные вторичные индексы, они продолжают поступать с точностью до наоборот во всех приведенных примерах:
- в в этом рекордном примере они создать ключ разделения на ключ, который имеет одно значение! Не означает ли это, что все запросы на высокие баллы (которые «часто запрашиваются» в соответствии с определением проблемы) будут попадать в один и тот же осколок?
- в примере перегрузки GSI , они предлагают создать GSI, который использует ключ сортировки таблицы в качестве ключа раздела, а затем выполнить поиск, например, по
Employee_Name
- но Employee_Name
является ключом разделения в GSI, так что опять все эти запросы не попадут в один и тот же осколок?
Не приведут ли эти примеры создание горячих разделов в GSI и, следовательно, страдают от проблем масштабирования? Или я что-то недопонимаю?