首页 新闻 会员 周边 捐助

一次性取数据和分次取数据的取舍问题

0
悬赏园豆:15 [已解决问题] 解决于 2022-02-15 14:45

如题
有一批不定数量的数据,现在需要根据一定的筛选条件(同一个字段不同的值)从中取一批数据出来,
两种方案,一种是一次性取出符合条件的数据,用in的方式一次取出来,(不考虑此期间数据发生变化的情况下),这样可以只连接一次数据库
另一种是 在循环中 逐次查询获取结果,需要开启多次数据库连接

不引入其它技术和设计的情况下,用哪种方案要更好一些?请有经验的前辈发表一下高见!

问题补充:

是在foreach循环中操作, 提问的初衷是源于一个思考:全部查出来放到内存中,相当于使用了应用服务器的资源, 循环查询则是充分使用了 数据库服务器的资源,取舍下,哪种的更好一点,请从多方面分析二者利弊

手扶拖拉机撕鸡的主页 手扶拖拉机撕鸡 | 小虾三级 | 园豆:573
提问于:2022-01-11 17:23
< >
分享
最佳答案
0

除非没有办法,否则绝不建议在循环中用查询,万一死循环,就尴尬了……先把数据查出来,放到内存中处理更好;如果数据量多,可以根据具体情况使用多线程,或者分页

收获园豆:15
三人乐乐 | 老鸟四级 |园豆:4823 | 2022-01-12 17:18
其他回答(2)
0

在循环中

循环改为 多线程,同时去获取

快乐的欧阳天美1114 | 园豆:4004 (老鸟四级) | 2022-01-11 20:44
0

如果是一次性取出数据,内存datatable中应该是有方法过滤筛选的
如果是在数据库用in取数据的话,要结合实际业务情况了,数据量本身就不大,在数据库中用in也无防,不会有太大的性能影响,如果数据量很大,能不能考虑如:union all这种方式以提升性能

狼图腾TOP | 园豆:322 (菜鸟二级) | 2022-01-13 11:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册