L’anti-pattern du stockage x10
GROUP BY crée plus de lignes qu’il n’en élimine, vous êtes en train de construire un index coûteux, pas une vue matérialisée.
Validation de la santé d’une vue matérialisée en production
- Faible ratio d’agrégation (<10 %) = Bonne MV, compression significative
- Ratio d’agrégation élevé (>70 %) = Mauvaise MV, risque d’explosion du stockage
- Multiplicateur de stockage = Dans quelle mesure votre MV sera plus grande ou plus petite
Quand les vues matérialisées deviennent un problème
- La latence d’insertion augmente (des requêtes qui prenaient 10 ms prennent désormais plus de 100 ms)
- Les erreurs “Too many parts” apparaissent plus fréquemment
- Des pics de CPU se produisent pendant les opérations d’insertion
- Des timeouts d’insertion surviennent alors qu’ils ne se produisaient pas auparavant
system.query_log pour suivre l’évolution de la durée des requêtes.
Sources vidéo
- ClickHouse at CommonRoom - Kirill Sapchuk - Source de l’étude de cas « trop enthousiaste à propos des vues matérialisées » et de « l’explosion de 20GB→190GB »