Ответ на этот вопрос зависит от количества предметов, их размера и вашего бюджета.Зависит от того, что у нас есть следующие 3 случая:
1- Количество предметов и размер предметов в таблице не очень велики.затем, как сказал Штеффен Опель, вы можете использовать Query вместо Scan, чтобы получить все элементы для user_id, а затем выполнить цикл по всем возвращенным элементам и либо использовать DeleteItem
или BatchWriteItem
.Но имейте в виду, вы можете сжечь много пропускной способности здесь.Например, рассмотрим ситуацию, когда вам нужно удалить 1000 элементов из таблицы DynamoDB.Предположим, что каждый элемент имеет размер 1 КБ, в результате чего получается около 1 МБ данных.Эта задача массового удаления потребует в общей сложности 2000 единиц емкости записи для запроса и удаления.Чтобы выполнить эту загрузку данных в течение 10 секунд (что даже не считается быстрым в некоторых приложениях), вам необходимо установить для пропускной способности записи таблицы 200 единиц емкости записи.Как вы можете видеть, его можно использовать таким образом, если он предназначен для меньшего количества предметов или предметов небольшого размера.
2 - У нас в таблице много предметов или предметов очень большого размера, и мы можем хранить их в соответствии свремя в разных таблицах.Тогда, как сказал Джонатан, вы можете просто удалить таблицу.это намного лучше, но я не думаю, что это соответствует вашему делу.Поскольку вы хотите удалить данные всех пользователей независимо от времени создания журналов, в этом случае вы не можете удалить конкретную таблицу.если вы хотите иметь отдельную таблицу для каждого пользователя, то я думаю, что если количество пользователей велико, то это так дорого, и это не практично для вашего случая.
3- Если у вас много данных и вы можетене делите ваши горячие и холодные данные на разные таблицы, и вам нужно часто выполнять масштабное удаление, тогда, к сожалению, DynamoDB вам совсем не подходит.Это может стать дороже или очень медленно (зависит от вашего бюджета).В этих случаях я рекомендую найти другую базу данных для ваших данных.