专栏名称: Java知音
专注于Java,推送技术文章,热门开源项目等。致力打造一个有实用,有情怀的Java技术公众号!
今天看啥  ›  专栏  ›  Java知音

MySQL+Redis,百万数据轻松优化

Java知音  · 公众号  ·  · 2024-09-26 10:05

主要观点总结

本文描述了对一个历史项目优化的过程,主要涉及到大数据量下的查询效率问题。通过使用分门别类的数据归档、缓存处理和定时任务统计等方式,实现了查询效率的大幅提升。

关键观点总结

关键观点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会将该请求的原参数,以及安全状态,是否存在 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览