主要观点总结
本文描述了对一个历史项目优化的过程,主要涉及到大数据量下的查询效率问题。通过使用分门别类的数据归档、缓存处理和定时任务统计等方式,实现了查询效率的大幅提升。
关键观点总结
关键观点1: 项目背景
客户反馈系统部分报表页面加载时间过长,涉及数据量增长导致的问题。技术栈包括SSM、Gateway、Redis、Kafka和MySQL。
关键观点2: 代码分析
原方法逻辑复杂,存在大量嵌套循环和数据库查询,导致查询效率低下。
关键观点3: 优化思路
通过数据分类归档、使用缓存和定时任务统计的方式减少数据库操作,提高查询效率。
关键观点4: 具体实现
1. 按事件状态和时间分类存储日志数据。2. 使用Redis缓存统计数据。3. 定时将缓存数据同步到数据库。4. 异步处理报表数据,通过Future返回结果。
关键观点5: 测试结果
优化后查询时间大幅缩短,150万的日志量在1秒内完成查询。
文章预览
提到历史项目,大家对它的第一印象可能会是数据量大、技术老旧、文档缺失、开发人员断层、"屎山"等。刚好这几天就接到了一个优化老项目的需求,客户反馈页面数据加载缓慢甚至加载不出来,希望能够做一些优化。 刚接到这个任务后真的是一脸懵逼,因为既没有文档,也没有相关的开发人员,甚至连需求都不了解。唯一的解决办法就是向上面多要时间,有了足够的时间就可以通过代码梳理出业务逻辑。 背景 客户在我司采购了WAF防火墙产品,用于拦截和阻断非法请求和一些具有攻击行为的请求。随着系统的不断运作,数据量也随之增长,这就导致客户系统部分报表页面加载时间过长,用户体验极差。 技术栈 SSM + Gateway + Redis + Kafka + MySQL 其中Gateway负责安全防护和限流,当请求经过Gateway时,Gateway会将该请求的原参数,以及安全状态,是否存在
………………………………