Допустим, у меня есть ключ раздела User:user@email.com
, и он имеет несколько ключей сортировки, таких как Data
, Sale:001
, Contact:001
.
Теперь, что если я хочу удалитьэтот пользователь?
Я думал о двух возможных способах использования API.
1 - Сканирование
Сначала выполните SCAN
, где partition-key=User:user@email
, получите результаты и выполните пакетное удаление для каждого возвращенного элемента с соответствующим ключом сортировки.
2 - Запрос
Для этого мне сначала нужно изменитьвсе ключи сортировки имеют общий префикс, например, User|Data
, User|Sale:001
, User|Contact:001
, а затем выполните запрос, где
partition-key=User:user@email.com and sort_key.begins_with(User)
после получения результатов, я бы тогда просто сделал пакетное удалениекак опция сканирования.
Мне не ясно, какой вариант является лучшим, потому что я не уверен, что сканирование имеет "интеллект", чтобы сканировать только внутри этого конкретного раздела, или это будетсканировать каждую запись в таблице.Потому что в DynamoDB вы платите за каждый килобайт элементов, которые были «найдены»
Потому что если это разумно, то я думаю, что это будет стоить столько же, сколько опция запроса, без добавления префикса к моим ключам сортировки.