Мутации обновления
Мутации обновления — это запросы ALTER, которые изменяют данные таблицы с помощью обновлений. Прежде всего это такие запросы, как ALTER TABLE UPDATE и т.п. Выполнение таких запросов приводит к созданию новых изменённых версий частей данных. Это означает, что такие запросы инициируют перезапись целых частей данных для всех строк, вставленных до мутации, что приводит к большому количеству операций записи.
Для обновлений вы можете избежать такого большого количества операций записи, используя специализированные движки таблиц, такие как ReplacingMergeTree или CollapsingMergeTree, вместо стандартного движка таблиц MergeTree.
Команды ALTER TABLE ... UPDATE
Манипулирует данными, которые соответствуют указанному фильтрующему выражению. Реализовано как мутация.
Префикс ALTER TABLE делает этот синтаксис отличающимся от большинства других систем, поддерживающих SQL. Он призван подчеркнуть, что, в отличие от похожих запросов в OLTP-базах данных, это ресурсоёмкая операция, не предназначенная для частого использования.
filter_expr должен иметь тип UInt8. Этот запрос обновляет значения указанных столбцов на значения соответствующих выражений в строках, для которых filter_expr принимает ненулевое значение. Значения приводятся к типу столбца с помощью оператора CAST. Обновление столбцов, используемых при вычислении первичного ключа или ключа партиции, не поддерживается.
Один запрос может содержать несколько команд, разделённых запятыми.
Синхронность обработки запроса определяется настройкой mutations_sync. По умолчанию запрос выполняется асинхронно.
См. также
- Мутации
- Синхронность ALTER-запросов
- Настройка mutations_sync