业务系统历史数据表累积数百万条业务归档数据,后台管理需要经常按时间、业务类型做分页检索。原始查询缺少复合索引,SQL 执行时触发全表扫描,查询耗时十几秒,页面加载超时。管理人员在核对历史单据、导出统计数据时,频繁查询失败,严重影响日常后台运营工作。
点击空白处退出提示
业务系统历史数据表累积数百万条业务归档数据,后台管理需要经常按时间、业务类型做分页检索。原始查询缺少复合索引,SQL 执行时触发全表扫描,查询耗时十几秒,页面加载超时。管理人员在核对历史单据、导出统计数据时,频繁查询失败,严重影响日常后台运营工作。
系统包含业务单据录入、历史记录多条件分页检索、批量数据导出等模块。业务持续运行多年,单表数据量膨胀到数百万级别。直接使用传统 limit 分页写法,越靠后的页面查询速度越慢,经常页面超时,管理人员无法快速筛选、查阅历史业务单据,数据导出任务也经常执行失败。
我负责数据库性能排查,通过 explain 分析 SQL 执行计划,重建适配查询条件的复合索引;采用主键分页替代 limit 偏移分页,改写查询语句,规避 select *;对长期不用的冷数据做归档迁移。在不改动业务代码主体、不引入分库分表的方案下,低成本解决慢查询问题,页面查询响应速度大幅提升。



评论