V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hahaFck
V2EX  ›  程序员

大家有为了减少访问数据库的次数而使代码的逻辑复杂度增加的么?

  •  
  •   hahaFck · 2021-07-16 12:00:43 +08:00 · 649 次点击
    这是一个创建于 1227 天前的主题,其中的信息可能已经有所发展或是发生改变。
    举个例子:
    比如说有个列表,有 50 多个组织,要在列表中对每个组织统计一些数字,这些数字是分散在各个表中,通过逻辑计算出来的。

    1.通过循环组织列表,对每个组织进行查询计算,这样是最简单的,但是至少需要访问数据库 50 次。

    2.通过一个 sql 将所有组织的数据都查出来,之后在计算。如果能按照组织 id 进行 group by 也算简单,如果不能 group by,就要对所有的数据进行循环处理,放到 Map 里面,key 是组织 id,然而 value 可能是个嵌套了好几层的 Map<String, Map>,取数的时候又要判断 key 是否存在,啰嗦代码一大堆,越看越恶心......

    3.也可以通过存储过程实现,不过存储过程的语法怪异,维护也不好维护。
    dethan
        1
    dethan  
       2021-07-16 13:42:57 +08:00 via Android
    当然选 2,在合理的情况下,尽量减少访问数据库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:59 · PVG 02:59 · LAX 10:59 · JFK 13:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.