El antipatrón de almacenamiento 10x
GROUP BY crea más filas de las que elimina, estás creando un índice costoso, no una vista materializada.
Verificación del estado de la vista materializada en producción
- Ratio de agregación bajo (<10%) = Buena MV, compresión significativa
- Ratio de agregación alto (>70%) = Mala MV, riesgo de explosión del almacenamiento
- Multiplicador de almacenamiento = Cuánto más grande o más pequeña será tu MV
Cuando las vistas materializadas se convierten en un problema
- Aumenta la latencia de inserción (las consultas que tardaban 10 ms ahora tardan 100 ms o más)
- Los errores “Too many parts” aparecen con más frecuencia
- Picos de CPU durante las operaciones de inserción
- Timeouts en las inserciones que antes no se producían
system.query_log para seguir la evolución de la duración de las consultas.
Fuentes en video
- ClickHouse en CommonRoom - Kirill Sapchuk - Fuente del caso de estudio sobre el “entusiasmo excesivo por las vistas materializadas” y la “explosión de 20GB→190GB”