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