Вопрос 1:
Сначала, скажем, я хотел запросить таблицу, чтобы получить последний эпизод - я
не уверен, что я могу сделать это таким образом, так как запрос требует
операция эквивалентности на ключе раздела (эпизод = X), который я
не знал бы заранее. Правильно ли я считаю, что сканирование
быть довольно дорогой операцией, если подкаст имеет большое количество
эпизоды (скажем, более 1000)?
Вы правы, что НЕ сможете запросить последний эпизод, потому что каждый эпизод находится в своем собственном разделе. Разделы почти как разные изолированные таблицы, поэтому нет возможности запрашивать данные во всех разделах без сканирования (как вы сказали).
Вопрос 2:
Во-вторых, лучшие практики DynamoDB говорят о двух вещах, которые работают
неуместно в моем случае использования (вероятно, признак того, что мой дизайн
недостатки). Во-первых, ключ раздела должен быть уникальным или близким к уникальному.
Во-вторых, следует ожидать, что запросы будут более или менее единообразными.
рассеяны среди ключей. В моем случае, хотя, пока раздел
Ключ действительно будет уникальным, я ожидаю, что подавляющее большинство
запросы для таргетинга на последний ключ раздела в таблице, для
Элемент, содержащий данные для последнего эпизода подкаста. Что будет
влияние на производительность, если, например, навык получает 1000 запросов
в любой день все нацелены на один ключ раздела?
Проблема здесь двоякая: AWS ожидает, что вы будете читать (и писать) одинаково для каждого раздела (или почти одинаково), поэтому в основном то, что произойдет, это то, что вы будете платить за единицы записи (и единицы чтения) ) на разделах, которые вы НЕ используете, даже если вы их не используете.
Точно, сколько еще будет выполняться, будет зависеть от того, сколько раз вы ЗАПРОСИТЕ базу данных, однако, Чтение намного дешевле, чем запись и 1000 операций чтения - это, по сути, ничто на столе с 1000 элементами. то есть. Вы МОЖЕТЕ иметь возможность сойти с рук, но это не идеально.
Схема альтернативной таблицы / Схема ключей
- Какие еще запросы вы будете делать? то есть. кроме «Проверить последний эпизод»
- Сколько подкастов добавляется в день? неделю? год
- Существует ли несколько «шоу» или категорий, которые можно использовать для ключей разделов, которые могут иметь более равномерное распределение и могут быть «известны»?