这是一个创建于 1203 天前的主题,其中的信息可能已经有所发展或是发生改变。
举个例子:
比如说有个列表,有 50 多个组织,要在列表中对每个组织统计一些数字,这些数字是分散在各个表中,通过逻辑计算出来的。
1.通过循环组织列表,对每个组织进行查询计算,这样是最简单的,但是至少需要访问数据库 50 次。
2.通过一个 sql 将所有组织的数据都查出来,之后在计算。如果能按照组织 id 进行 group by 也算简单,如果不能 group by,就要对所有的数据进行循环处理,放到 Map 里面,key 是组织 id,然而 value 可能是个嵌套了好几层的 Map<String, Map>,取数的时候又要判断 key 是否存在,啰嗦代码一大堆,越看越恶心......
3.也可以通过存储过程实现,不过存储过程的语法怪异,维护也不好维护。
|
|
1
dethan 2021-07-16 13:42:57 +08:00 via Android
当然选 2,在合理的情况下,尽量减少访问数据库
|