在循环里创建数据库连接,严重影响数据库性能
在循环里面去操作数据库肯定会慢的,而且还容易碰到新手,在循环里面创建数据库连接,会导致连接数满。一般查询的话,在外层一次性查询出来 然后 在逻辑层去循环组织数据。如果是新增,则可以考虑使用批量插入的方法去处理。

查询的话,在外层一次性查询出来 然后 在逻辑层去循环组织数据。不要循环查询数据库,(尤其是递归查询组织树)经过测试两者在相同数据(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();

}

使用jdk8新特性实现数据库性能优化相关推荐

  1. 分而治之:Oracle 18c 及 12.2 分区新特性的 N 种优化实践(含PPT)

    关注"数据和云",精彩不容错过 本文根据 杨廷琨 2018 年 5 月 11 日在[第九届中国数据库技术大会]上的演讲内容整理而成,关注公众号并回复 "Yangtingk ...

  2. 【云和恩墨业务介绍】之数据库性能优化服务

    数据库性能优化的必要性 性能问题对于行业.企业用户的信息化处理能力.客户的直接体验.硬件资源的投入成本. 运维要求都有着直接的影响,一旦性能问题爆发,将导致业务系统不可正常使用,客户体验变差等一系列影 ...

  3. DEV05 GBase 8a MPP Cluster 数据库性能优化

    GBase 8a MPP Cluster 数据库性能优化 一.数据库为何要优化 (一)从 DBA 角度谈数据库为何要优化 (二)数据库产品的选型: (三)从 DE(开发工程师)角度谈数据库为何要优化 ...

  4. JDK8新特性知识点总结

    一个简洁的博客网站:http://lss-coding.top,欢迎大家来访 学习娱乐导航页:http://miss123.top/ 1. Open JDK 和 Oracle JDK Java 由 S ...

  5. mysql reorg_生产数据库性能优化之reorg和表重建

    生产数据库的性能调优是一个系统的工程,它不仅要求DBA熟悉db2的工作原理和各种性能指标,还要求DBA也要熟悉操作系统.存储等其他知识,甚至要求DBA熟悉应用的设计原理以及它使用数据库的方式等.这里, ...

  6. JDK8新特性详解Lambda、StreamAPI、Optional等

    JDK8学习笔记 学习视频地址:https://www.bilibili.com/video/BV1k64y1R7sA 操作代码:https://gitee.com/rederic/study-jdk ...

  7. 集合框架,JDK8新特性

    一.集合框架 1.为什么会有集合? 集合和数组都是java中提供的可以用来存储多个数据的一种容器.由于数组类型特点是存储同一类型的元素且长度固定,可以存储基本数据类型值.为了满足现实需求, Java中 ...

  8. 数据库性能优化经验总结

    1.数据库访问优化法则 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件 ...

  9. MySQL数据库性能优化及自动化运维实践教程!DBA日常工作

    MySQL数据库性能优化及自动化运维实践教程!本文作者将站在更加全面的角度分享他在这一年多 DBA 工作中的经验,希望可以给大家带来启发和帮助. DBA 的日常工作 我觉得 DBA 真的很忙,我们来看 ...

最新文章

  1. flume自定义Interceptor
  2. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 )
  3. git学习创建项目仓库
  4. 打印100~200 之间的素数
  5. Spring MVC:高级会话
  6. 【2019牛客暑期多校训练营(第五场)- E】independent set 1(最大独立集,状压dp)
  7. .net 裁剪图片(不压缩)
  8. python的panda是什么库_Python的Pandas库简述
  9. Linux部署安装JDK
  10. orabbix监控oracle11g,zabbix利用orabbix监控oracle(详细配置图解)
  11. python virtualenv 坑_Python 虛擬環境 | Mac/Linux下如何避坑安裝配置Virtualenv
  12. Zookeeper权限控制ACL详解
  13. 原创内容将成网络视频的一支奇军
  14. Git学习笔记:常用命令总结
  15. 4.1 Spark SQL概述
  16. 推荐几个清华和交大学霸公众号,值得学习
  17. 4款Windows必装的软件,免费又实用,让你的电脑无所不能
  18. hprose for java 教程_Hprose for Java 快速入门
  19. 写在2016的最后一周
  20. Ubuntu 15.10 x64 安装 Android SDK

热门文章

  1. 基于shiro的权限设计
  2. Spring中@Value用法收集
  3. Quartz2D绘图
  4. android的权限问题
  5. 如何学习android高级编程
  6. 从HP发布BSM新版套件看网管与安管的融合
  7. sqlplusw下登录sys账户
  8. 【备忘1】防止表格/层 被撑破的CSS控制代码
  9. 白话hash和数字签名,保证你看得懂
  10. firebase 发生消息_如何在命令行提示符下显示当前的Firebase项目名称,以防止发生危险错误...