Ответ 1
- DynamoDB не предназначен для оптимизации индексирования по заданным значениям. Ниже приведена копия соответствующей документации по амазонке (от Улучшение доступа к данным со вторичными индексами в DynamoDB).
Схема ключа для индекса. Каждый атрибут в схеме ключа индекса должен быть атрибутом верхнего уровня типа String, Number или Binary. Вложенные атрибуты и многозначные наборы не допускаются. Другие требования к ключевой схеме зависят от типа индекса: для глобальный вторичный индекс, хэш-атрибутом может быть любая скалярная таблица атрибут. Атрибут range необязателен, и он также может быть любым скаляром table. Для локального вторичного индекса хэш-атрибут должен быть таким же, как атрибут хэш таблицы, и атрибут диапазона должен быть атрибутом без ключа.
- Amazon рекомендует создать отдельную таблицу "один ко многим" для таких проблем. Подробнее здесь: Использовать таблицы один и несколько