Ответ 1
Да, для Cassandra UPDATE
является синонимом INSERT
, как описано в документации CQL, где говорится следующее о UPDATE
:
Обратите внимание, что в отличие от SQL,
UPDATE
не проверяет предыдущее существование строки: строка создается, если она не существовала раньше, и обновляется в противном случае. Кроме того, нет никакого понятия о том, какие из созданий или обновлений произошли. На самом деле семантикаINSERT
иUPDATE
идентична.
Для того чтобы семантика была другой, Кассандре нужно было бы прочитать, чтобы знать, существует ли строка. Cassandra оптимизирована для записи, поэтому вы всегда можете предположить, что она не читает перед записью в любой операции записи. Единственным исключением являются счетчики (если replicate_on_write = false
), и в этом случае репликация при инкрементах включает чтение.