Saltar al contenido principal
Hay varias formas de eliminar datos en ClickHouse, cada una con sus propias ventajas y características de rendimiento. Debe seleccionar el método adecuado en función de su modelo de datos y de la cantidad de datos que pretenda eliminar. A continuación, se ofrece un resumen de las distintas formas de eliminar datos en ClickHouse:

Eliminaciones ligeras

Las eliminaciones ligeras hacen que las filas se marquen inmediatamente como eliminadas, de modo que puedan excluirse automáticamente de todas las consultas SELECT posteriores. La eliminación posterior de estas filas se produce durante los ciclos naturales de merge y, por lo tanto, conlleva menos E/S. Como resultado, es posible que, durante un período no especificado, los datos no se eliminen realmente del almacenamiento y solo queden marcados como eliminados. Si necesita garantizar que los datos se eliminen, considere el comando de mutación anterior.
Eliminar grandes volúmenes de datos con la sentencia de eliminación ligera DELETE también puede afectar negativamente al rendimiento de las consultas SELECT. Además, este comando no es compatible con tablas que tengan proyecciones. Tenga en cuenta que en esta operación se utiliza una mutación para marcar las filas eliminadas (añadiendo una columna _row_exists), lo que genera cierta E/S. En general, deben preferirse las eliminaciones ligeras frente a las mutaciones si se puede tolerar que los datos eliminados sigan existiendo en disco (por ejemplo, en casos sin requisitos de cumplimiento). Aun así, debe evitarse este enfoque si es necesario eliminar todos los datos. Obtenga más información sobre las eliminaciones ligeras.

Mutaciones de eliminación

Las mutaciones de eliminación se pueden ejecutar con un comando ALTER TABLE ... DELETE, por ejemplo.
Estas pueden ejecutarse de forma síncrona (de forma predeterminada si no son no replicadas) o asíncrona (según lo determine la configuración mutations_sync). Son operaciones extremadamente intensivas en I/O, ya que reescriben todas las partes que coinciden con la expresión WHERE. Este proceso no tiene atomicidad: las partes se sustituyen por partes mutadas en cuanto están listas, y una consulta SELECT que comience a ejecutarse durante una mutación verá datos de partes que ya han sido mutadas junto con datos de partes que aún no han sido mutadas. Los usuarios pueden seguir el progreso mediante la tabla system.mutations. Estas son operaciones intensivas en I/O y deben usarse con moderación, ya que pueden afectar al rendimiento de SELECT en el cluster. Lea más sobre las mutaciones de eliminación.

Truncar tabla

Si necesita eliminar todos los datos de una tabla, use el comando TRUNCATE TABLE que se muestra a continuación. Esta es una operación ligera.
Más información sobre TRUNCATE TABLE.

Eliminar partición

Si ha especificado una clave de particionado personalizada para sus datos, las particiones pueden eliminarse de forma eficiente. Evite el particionado de alta cardinalidad.
Más información sobre DROP PARTITION.

Más recursos

Última modificación el 25 de junio de 2026