Aqui está um resumo das diferentes formas de excluir dados no ClickHouse:
Exclusões leves
SELECT subsequentes. A remoção posterior dessas linhas excluídas ocorre durante ciclos naturais de merge e, assim, gera menos E/S. Como resultado, é possível que, por um período não especificado, os dados não sejam realmente excluídos do armazenamento, mas apenas marcados como excluídos. Se você precisar garantir que os dados sejam excluídos, considere o comando de mutação acima.
DELETE leve também pode afetar negativamente o desempenho de consultas SELECT. O comando também não é compatível com tabelas com projeções.
Observe que uma mutação é usada na operação para marcar as linhas excluídas (adicionando uma coluna _row_exists), o que gera alguma E/S.
Em geral, as exclusões leves devem ser preferidas em vez de mutações se a existência dos dados excluídos em disco puder ser tolerada (por exemplo, em casos em que não há requisitos de conformidade). Essa abordagem ainda deve ser evitada se todos os dados precisarem ser excluídos.
Leia mais sobre exclusões leves.
Mutações de exclusão
ALTER TABLE ... DELETE, por exemplo.
WHERE. Não há atomicidade nesse processo - as partes são substituídas por partes alteradas assim que ficam prontas, e uma consulta SELECT que comece a ser executada durante uma mutação verá dados de partes que já foram alteradas junto com dados de partes que ainda não foram alteradas. Os usuários podem acompanhar o andamento por meio da tabela system.mutations. Essas são operações intensivas de E/S e devem ser usadas com moderação, pois podem afetar o desempenho das consultas SELECT no cluster.
Leia mais sobre mutações de exclusão.
Truncar tabela
TRUNCATE TABLE mostrado abaixo. Esta é uma operação simples.