社区
Web 开发
帖子详情
Java程序,多一次数据库查询,与循环相比,哪个性能更差?
kobe_byrant
2015-04-29 12:28:46
首先web程序,每天访问量巨大!
页面本身已经有一个数据库查询,我打算在此次数据库查询里把我需要的另一种信息查出来,而不是多一次数据库查询,这样的代价就是循环遍历结果集的时候,循环次数多了(预计最多多了100以内)。
想问下,两种方案哪个从性能方面来说更操蛋?
1,一次数据库查询查出所有,代价是多了几次循环。
2,分开两次数据库查询。
谢谢
...全文
11787
16
打赏
收藏
Java程序,多一次数据库查询,与循环相比,哪个性能更差?
首先web程序,每天访问量巨大! 页面本身已经有一个数据库查询,我打算在此次数据库查询里把我需要的另一种信息查出来,而不是多一次数据库查询,这样的代价就是循环遍历结果集的时候,循环次数多了(预计最多多了100以内)。 想问下,两种方案哪个从性能方面来说更操蛋? 1,一次数据库查询查出所有,代价是多了几次循环。 2,分开两次数据库查询。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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次的时间要长。 当时你只是分两次查询,那可以对比下效率,看看那个快。
Java
8中用法优雅的Stream,
性能
也"优雅"吗?
之前的文章中我们介绍了
Java
8中Stream相关的API,我们提到Stream API可以极大提高
Java
程序
员的生产力,让
程序
员写出高效率、干净、简洁的代码。那么,Stream API的
性能
到底如何呢,代码整洁的背后是否意味着
性能
的损耗呢?本文我们对Stream API的
性能
一探究竟。为保证测试结果真实可信,我们将JVM运行在-server模式下,测试数据在GB量级,测...
SQL Server查询计划解读:从执行原理到
性能
优化实战
SQL Server查询计划是数据库优化的核心依据,本质是查询优化器基于成本模型(I/O、CPU、内存)计算出的最优执行路径快照。理解其生成机制需掌握统计信息、参数嗅探与计划缓存等底层原理;技术价值在于将模糊的‘慢SQL’问题转化为可量化、可验证的图形化诊断过程——通过运算符形状识别物理操作类型(如索引查找vs扫描),借助颜色区分资源瓶颈(绿色主I/O、黄色主CPU),结合实际行数与估计行数偏差定位统计失真。典型应用场景涵盖OLTP高并发调优、BI报表加速及遗留系统
性能
治理。本文聚焦实际执行计划分析,深入拆
从算法幻想到工程实践:技术优化的四步
循环
与压缩之道
在软件工程与算法开发中,优化是一个核心概念,它涉及在资源约束下提升系统效率与
性能
。其基本原理是在时间、空间、复杂度等多维度间进行权衡,旨在用更少的计算、内存或存储资源达成既定目标,或提升处理速度与吞吐量。这一过程的技术价值在于,它能直接降低运营成本、改善用户体验,并支撑系统在规模上的可扩展性。典型的应用场景包括降低AI模型推理延迟、优化
数据库查询
性能
、减少微服务资源占用等。实践中,高效的优化往往遵循从宏观架构到微观代码的路径,并高度依赖
性能
剖析(Profiling)工具来定位真实瓶颈,而非依赖猜测。本文以模
从
Java
的StreamAPI看函数式编程在现代企业开发中的实践与挑战
此外,Stream的惰性求值特性避免了不必要的计算,只有在终止操作被调用时才会执行整个流水线,这优化了
程序
性能
。展望未来,随着
Java
版本的持续更新,Stream API仍在不断进化,例如新增的`takeWhile`/`dropWhile`等方法增强了流的控制能力。在现代微服务和反应式编程兴起的背景下,Stream所代表的流式处理思想与Reactive Streams等技术理念一脉相承,掌握好Stream API将为开发者理解和应用更先进的响应式框架(如Project Reactor)奠定坚实的基础。
跨域思考:构建
程序
员的通用建模心智模型
在分布式系统与多技术栈日益普及的今天,开发者面临的核心挑战已从‘掌握工具’转向‘理解范式’。数据库、编程语言、中间件等技术表象之下,共存着状态管理、并发控制、数据一致性、查询优化和资源调度五大底层计算范式。真正制约成长的并非知识广度,而是能否将MySQL的事务、Rust的所有权、Redis的原子操作等具体实现,抽象为对‘状态变更可逆性’‘共享资源协调’‘异常下数据确定性’等本质问题的统一认知。这种跨语言、跨存储的通用建模能力,支撑高可用架构设计、异构系统集成与
性能
瓶颈归因,是资深工程师突破职业平台期、实现技
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章