使用jdk8新特性实现数据库性能优化
在循环里创建数据库连接,严重影响数据库性能
在循环里面去操作数据库肯定会慢的,而且还容易碰到新手,在循环里面创建数据库连接,会导致连接数满。一般查询的话,在外层一次性查询出来 然后 在逻辑层去循环组织数据。如果是新增,则可以考虑使用批量插入的方法去处理。
查询的话,在外层一次性查询出来 然后 在逻辑层去循环组织数据。不要循环查询数据库,(尤其是递归查询组织树)经过测试两者在相同数据(258条数据)的情况下性能相差6倍。
如果是更新(修改,新增,删除),多条数据也建议批量处理。(数据少的话没有差别,如果数据量很大的话差别就会很明显,如果多条数据数据量不是很大,用循环交互数据库也可以)。
总的来说,循环交互数据库会使得性能降低。尤其是查询大数据量的时候,性能测试的时差体现的很明显。
如:批量修改操作
for(int i=0;i<ids.length;i++){
bankJournalRepository.delete(ids[i])
}
优化后的代码:
public ErrorObject deleteByIds(String ids) {
List<String> idList = Arrays.asList(ids.split(","));
List<Long> idIte = idList.stream().map(s -> Long.valueOf(s)).collect(Collectors.toList());
bankJournalRepository.delete(bankJournalRepository.findAll(idIte));
return new ErrorObject();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY