count(distinct) 是数据分析中的资源消耗大户,尤其在数据量大时。物化视图的优化效果:
场景:用户需要统计去重后的错误特征(Hash)数量,SQL 包含 count(1) 和 count(distinct hash_val) 按 project_id 分组。
优化前:平均耗时 16.8 秒。拉长时间范围或高峰流量时很容易查不出来。
优化后:查询时间降到 2.2 秒,性能提升 8 倍。该功能从“经常不可用”变成了“可以随时查”。
原理:物化视图将去重统计的计算提前完成,查询时直接读取预计算的去重结果,避免了对原始数据的全量扫描和实时去重计算。对于包含大量去重统计、百分位计算等耗资源操作的 SQL,效果尤为明显。




