Перейти к основному содержанию
Перейти к основному содержанию

Мутации удаления

Под мутациями удаления подразумеваются запросы ALTER, которые модифицируют данные таблицы за счёт удаления. В первую очередь это такие запросы, как ALTER TABLE DELETE и т. п. Выполнение таких запросов порождает новые модифицированные версии частей данных. Это означает, что такие запросы запускают полную перезапись частей данных для всех данных, которые были вставлены до мутации, что приводит к большому количеству операций записи.

Справочные материалы

Для операций удаления вы можете избежать этого большого количества операций записи, используя специализированные движки таблиц, такие как ReplacingMergeTree или CollapsingMergeTree, вместо стандартного движка таблиц MergeTree.

Инструкция ALTER TABLE ... DELETE

ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr

Удаляет данные, соответствующие указанному фильтрующему выражению. Реализовано как мутация.

Примечание

Префикс ALTER TABLE делает этот синтаксис отличным от большинства других систем, поддерживающих SQL. Он используется для обозначения того, что, в отличие от аналогичных запросов в OLTP-базах данных, это ресурсоёмкая операция, не предназначенная для частого использования. ALTER TABLE считается тяжёлой операцией, которая требует слияния лежащих в основе данных перед их удалением. Для таблиц MergeTree рассмотрите использование запроса DELETE FROM, который выполняет «лёгкое» удаление и может быть значительно быстрее.

filter_expr должен иметь тип UInt8. Запрос удаляет строки в таблице, для которых это выражение принимает ненулевое значение.

Один запрос может содержать несколько команд, разделённых запятыми.

Синхронность обработки запроса определяется настройкой mutations_sync. По умолчанию обработка асинхронная.

См. также