Когда вы вставляете данные в DynamoDB, он внутренне разделяет данные и хранит их в разных узлах хранения.Это основано на ключе раздела.
Допустим, вы хотите запросить элемент на основе неключевого (ни ключа раздела, ни ключа сортировки), вам нужно использовать сканирование (которое стоит дорого, поскольку проверяет всепредметы в таблице).
Вот тут-то и вступают GSI и LSI. Давайте возьмем пример таблицы ученика с StudentsId в качестве ключа сортировки и SchoolId в качестве ключа раздела.
LSI полезна, если у вашего приложения есть вопросы, такие как получениевсе ученики 5 класса данной школы.
Если вам необходимо опросить всех учащихся 5-го класса во всех школах (по всем школьным разделам), вам потребуется GSI.