社区
Web 开发
帖子详情
Java程序,多一次数据库查询,与循环相比,哪个性能更差?
kobe_byrant
2015-04-29 12:28:46
首先web程序,每天访问量巨大!
页面本身已经有一个数据库查询,我打算在此次数据库查询里把我需要的另一种信息查出来,而不是多一次数据库查询,这样的代价就是循环遍历结果集的时候,循环次数多了(预计最多多了100以内)。
想问下,两种方案哪个从性能方面来说更操蛋?
1,一次数据库查询查出所有,代价是多了几次循环。
2,分开两次数据库查询。
谢谢
...全文
11474
16
打赏
收藏
Java程序,多一次数据库查询,与循环相比,哪个性能更差?
首先web程序,每天访问量巨大! 页面本身已经有一个数据库查询,我打算在此次数据库查询里把我需要的另一种信息查出来,而不是多一次数据库查询,这样的代价就是循环遍历结果集的时候,循环次数多了(预计最多多了100以内)。 想问下,两种方案哪个从性能方面来说更操蛋? 1,一次数据库查询查出所有,代价是多了几次循环。 2,分开两次数据库查询。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
XxiaoxiaoL
2015-05-04
打赏
举报
回复
只考虑速度的话,循环好点
wangzhuoyan
2015-05-04
打赏
举报
回复
缓存应该可以配置存活时间把,如果数据不常用,可以考虑,至于循环,和查询数据库要看具体业务,测试环境,单纯的不太好说,例如你循环里还是有一些逻辑处理。
请叫我砖家
2015-05-04
打赏
举报
回复
一次性查询,如果关联表较多,可以用视图或者临时表
microhex
2015-05-03
打赏
举报
回复
两个方法compare吧、、
放纵的青春
2015-05-03
打赏
举报
回复
虽然简单来说循环比多连一次数据库好 但是也要看你循环里面做了些啥玩意···
dragonlw
2015-04-30
打赏
举报
回复
2
1) 通常情况下,数据库的链接释放开销比较大,可以一次性的查出来。 内存里面的循环操作开销要小的多 2)看你业务逻辑,如果用户只希望看到最近多少条记录,第一个分页页面就能满足80%的需求了,就可以分两次或多次查询数据库 3) 如果你查询出来的数据可能过期了 obsolete(别人修改过了),一次查出来就可能会有问题了。 当然co-editing 的情况可能例外,一个客户端的改动会同步到其他具有编辑权限的客户端并且及时更新。 没有最好的solution,只有最合适的solution
青元子
2015-04-30
打赏
举报
回复
为啥不写个测试类来测试两种情况呢
S117
2015-04-30
打赏
举报
回复
时间跑跑再说呀
tony4geek
2015-04-30
打赏
举报
回复
写个例子试试看看。
reinhardcao2
2015-04-30
打赏
举报
回复
至于缓存要看命中率,高的可以用,低的就算了。
reinhardcao2
2015-04-30
打赏
举报
回复
单从查库和循环来看,当然是循环好,因为对象都在内存中,速度比查库要快很多;而且减少一次查询也就是减少了数据库的压力。
kobe_byrant
2015-04-29
打赏
举报
回复
引用 3 楼 shouhuhuise 的回复:
考虑下用缓存。不用每次都要查询
有缓存的,memcached缓存,但缓存时间才30分钟,过了缓存失效时间还是要查数据库的。
咖啡加蛋
2015-04-29
打赏
举报
回复
个人感觉还是2中3都实现,然后模拟实际的极限情况,测试下执行时间看哪个更好!这种要看具体代码,这么说很难比较
我想再坚持一下
2015-04-29
打赏
举报
回复
考虑下用缓存。不用每次都要查询
Defonds
2015-04-29
打赏
举报
回复
压上去,用数据说明问题
l107868382
2015-04-29
打赏
举报
回复
建议是一次性查询完。 一般情况下与数据库交互花费的时间比遍历100次的时间要长。 当时你只是分两次查询,那可以对比下效率,看看那个快。
循环
查询数据库的
性能
问题及优化
问题背景:在for
循环
中,不断访问
数据库查询
数据。代码如下:优化前
数据库查询
语句:private static String selectSql = "select * from captain.resourceAccessSetting where backupProId = ?";优化前代码:for (RecordInfo recordInfo : recordInfos) { ...
循环
中读取数据库、嵌套
循环
引起的
性能
问题
背景说明 K/3 Cloud的代码开发规范,严格禁止在
循环
中到数据库读取数据,这会引发严重的
性能
问题: 需在
循环
外,
一次
性取回需要的数据。 但对于提前取回的数据,如果没有预先处理,常常需要嵌套一个
循环
到集合中取数,这也是非常严重的
性能
问题。 本帖将通过一个案例,编写三套实现方法,演示
循环
取数,典型的错误方案与推荐方案。 案例说明 需求: 生成销售出库单
for
循环
以及
数据库查询
优化方案
三、结语本文主要优化方式,都是结合多线程进行优化并推崇用iava8的对应写法。具体iava8语法不了解的可以自行寻找资料进行学习如果数据量少的情况下用foreach的
循环
写法Stream流
循环
针对数据量大的情况下会更具优势,小数据不明显。
java
8中的stream流操作和for
循环
操作到底谁的
性能
高?
java
8中的stream流操作和for
循环
操作到底谁的
性能
高? 如果是在
循环
体中有复杂的业务、调用远程接口或数据库就用stream,因为stream是多线程方式并行执行,但是其调用线程池必然会消耗
性能
,所以简单的操作固然还是for
循环
效率高。你说谁好谁坏还是要根据实际的业务场景来。 ...
Java
基础入门--第十一章--JDBC(
Java
Database Connection)
Java
数据库连接
JDBC的全称是
Java
数据库连接(
Java
Database Connectivity),它是一套用于执行SQL语句的
Java
API。应用
程序
可通过这套
Java
API连接到关系数据库,并使用SQL语句完成对数据库中数据的查询、新增、更新和删除等操作。不同的数据库(如MySQL、Oracle等)处理数据的方式是不同的,如果直接使用数据库厂商提供的访问接口操作数据库,应用
程序
的可移植性就会变得很差。
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章