业务背景
交易平台的管理列表、分类筛选、用户统计和相似商品查询随业务增长不断变重。优化需要保持业务过滤结果与排序语义,同时减少数据库工作量。
关键问题
- 多表关联再去重会放大中间结果与计数成本。
- 重复 COUNT 与复杂列表统计占用在线数据库资源。
- 通知等历史数据持续增长,增加查询与维护压力。
我的实现与取舍
- 将部分二级分类过滤从 JOIN + DISTINCT 改为 EXISTS,减少重复行和不必要去重。
- 优化热点计数、查询条件和索引,将部分管理统计切换到 StarRocks。
- 实施通知数据按时间分区与后续分区维护,并处理相似货品查询与异步结果缓存。
落地结果
- 持续治理生产慢查询,覆盖用户接口和管理后台统计。
- 让在线交易查询与部分分析统计采用更适合各自负载的路径。
- 以查询正确性和业务过滤语义为前提,持续改善线上查询路径。
欢迎深入交流
可以展开聊:EXPLAIN ANALYZE、索引选择、COUNT 的成本、N+1、缓存失效、统计新鲜度与查询语义。
