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

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

Мутации удаления относятся к запросам 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 /sql-reference/statements/delete.md), который выполняет легковесное удаление и может быть значительно быстрее.

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

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

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

Смотрите также