性能调优
【问题】
任务管理中的查阅功能,随着使用时间,数据量也是到了几十万条,导致请求响应也到了10s左右,影响到了用户体验,所以需进行性能调用。
【优化】
经过排查了sql语句,业务代码等逻辑都正常,且已使用过mybatis的二级缓存进行响应前端,目前只剩下表的优化。
1. 优化表结构
选择合适的数据类型,使用最小的数据类型存储数据,减少存储空间和 I/O 开销。
例如:使用 INT 而不是 BIGINT,使用 VARCHAR(50) 而不是 VARCHAR(255)。
2. 使用索引
注意:避免过度增加索引,索引虽然会增加查询效率,但也会给插入删除等操作变慢。
3. 分析
通过查询对比加索引和不加索引的区别,检验是否成功使用到。
发现查询速度提升了27倍多,再检查下整体功能。
查询效率也是提高了90多倍,一点卡顿效果也没有了,问题解决,还有些其它优化思路就先不用了。
【其它方法】
4. 优化服务器配置
-
调整缓冲池大小
对于 InnoDB 存储引擎,调整 innodb_buffer_pool_size,使其足够大以缓存数据和索引。 -
调整查询缓存
在 MySQL 8.0 之前,可以使用查询缓存(Query Cache)加速重复查询。
注意:MySQL 8.0 已移除查询缓存。 -
调整连接数
根据并发请求量调整最大连接数。
5. 使用缓存
-
应用层缓存
使用 Redis、Memcached 等缓存工具缓存热点数据,减少数据库查询压力。 -
数据库缓存
使用 InnoDB 缓冲池缓存数据和索引。
6. 读写分离与分库分表
-
读写分离
将读操作和写操作分离到不同的数据库实例,减轻主库压力。 -
分库分表
对大数据量表进行分库分表,分散查询压力。
__EOF__
bug怎么这么多!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)