На основе документации в DynamoDB зачем кому-то использовать операция updateitem
вместо putItem
?
PutItem
- пишет один пункт в таблицу. Если товар с такой же первичный ключ существует в таблице, то операция заменяет элемент. Для расчета выделенную пропускную способность потребления, размер товара, что имеет значение больше двух.Операция updateitem
- изменяет один элемент в таблице. В DynamoDB считает размер элемента до и после обновления. Выделенную пропускную способность потребляется отражает больше этих размеров элемента. Даже если вы обновляете только подмножество элементов'с атрибутами, операция updateitem
все равно будет потреблять всю сумму выделенную пропускную способность (библиотеки большего от "до" и "после" по пункту sizes_).Основное различие между этими двумя, PutItem будет замена весь товар в то время как операция updateitem будет обновление **** это.
Например.
У меня есть пункт как:
userId = 1
Name= ABC
Gender= Male
Если я использую пункт поставить с
UserId = 1
Country = India
Это позволит заменить имя и пол и теперь новый элемент userId и страны. А если вы хотите обновить элемент имя = ABC, чтобы имя = 123` вы должны использовать операция updateitem
Вы можете использовать пункт поставить на обновление, но вы должны отправить всех параметров, а не только тот параметр, который вы хотите обновить, потому что он заменяет элемент с новым атрибутом.(Внутренне он удаляет элемент и добавить новый элемент)
Надеюсь, что это имеет смысл.
PutItem
перезаписывает весь товар (все атрибуты) с новой версией прошло время операция updateitem
только обновление прошло атрибутами
Производительность: PutItem
может повлиять на производительность, если вы перезаписываете весь товар так часто, как это требует больше операций, чем операция updateitem` метод finditem, DeleteOldVersion, и AddNewVersion
В стоимость перспективных, это по-другому:
АРМ рассчитывает стоимость в зависимости от вида используемого чтение/запись единиц мощности, что полностью привязано к размер элемента перезапись/обновление.
В случае PutItem
, размер будет больше новых и старых версий элемента. Например, замена 2 КБ предмет 1 КБ, он будет потреблять 2 однако WCUs последующие запросы будут использовать только 1 ВКУ. так что, если вы'вновь так часто перезаписи и размер элемента изменяется сильно, что будет всегда подсчитать крупная версия элемента и влияет на стоимость.
В случае изменения объектов, используя операция updateitem
, размер включает все элементов уже существующих атрибутов, не большем варианте как PutItem
:) но и не только те, которые добавляются или обновляются :(