一次检索还是多次检索

现在要从数据库中检索数据,并对检索后数据进行操作,有以下两种方法:
1.一次检索出需要的所有数据,再对数据进行操作
2.先检索出一部分数据,对这部分数据操作完,再利用这部分数据检索其他数据,再操作其他数据
比如:id和parentId,id可以根据parentId检索出来,那么是应该检索出所有数据集中处理还是先检索parentId,处理完parentId后再检索id,处理id再将处理的结果合并返回?
从效率分析应该是一起检索出来的快,毕竟减少了与数据库之间的交互;但是由于检索结果比较复杂,那么程序处理也就相应复杂,程序的可读性就变差了。而另一种方法则相反,牺牲掉一部分性能增加了良好的可读性。

所以请问下,如果各位遇到相同情况会如何选择

4个回答

这种情况需折中

如一条sql 在以下场景可以改成多条sql:
一条sql无法利用索引 但拆成多条可以;
如果连表太多 可以拆 否则连表一般是嵌套查询 增加了复杂度;

一条sql的性能 > 多条sql的性能 不成立

zhengrenxiao
zhengrenxiao 一直以为一条查询更效率,因为它不用重复的链接数据库。
大约 8 年之前 回复

这个要看你的数据量的吧,如果你有1亿条数据,那当然选第2种方法了

henghanan
henghanan 还有你量有多大?操作有多频繁?数据结构又是什么样子的?尤其那个父子关系,最多几层?
大约 8 年之前 回复

看场景,看数据量吧

我遇到过类似的问题,一开始采用嵌套查询,逻辑简单,后来当parent数据量稍微大些会使性能急剧下降,最后又重构为第一种方法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问