<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          今日代碼 PK | 避免循環(huán)查庫(kù)

          共 1519字,需瀏覽 4分鐘

           ·

          2024-04-12 01:25

          在后端開(kāi)發(fā)中,循環(huán)查庫(kù)可以說(shuō)是一種忌諱,因?yàn)榕c數(shù)據(jù)庫(kù)的 IO 交互是十分耗時(shí)的行為。

          特別是使用云數(shù)據(jù)庫(kù)時(shí),不僅有磁盤(pán) IO ,還有網(wǎng)絡(luò) IO。

          因此我們往往會(huì)采用一些策略來(lái)避免循環(huán)查庫(kù)。

          但是新手往往會(huì)忘記這個(gè)點(diǎn),寫(xiě)出不規(guī)范的代碼,

          示例代碼:

          for (ModelVO model : modelList) {
              User user = userService.getById(model.getUserId());
              model.setUser(user);
          }

          list里的數(shù)據(jù)比較多的情況下,執(zhí)行個(gè)幾十秒都有可能。

          我們可以改寫(xiě)成這樣,示例代碼:

          List<Long> userIdList = modelList.stream()
                  .map(Model::getUserId)
                  .collect(Collectors.toList());
          List<User> users = userService.listByIds(userIdList);
          Map<Long, List<User>> idUserMap = users.stream()
                  .collect(Collectors.groupingBy(User::getId));
          modelList.forEach(model -> model.setUser(idUserMap.get(model.getUserId())));

          這樣就避免了循環(huán)查庫(kù)(上面的代碼缺少了判空邏輯,大家自行完善)。

          你都是使用什么方法來(lái)避免循環(huán)查庫(kù)呢?歡迎投票并在評(píng)論區(qū)留下自己的做法。

          完整代碼片段來(lái)源于代碼小抄,歡迎點(diǎn)擊進(jìn)入小程序閱讀!

          在線訪問(wèn):https://www.codecopy.cn/post/gl930t

          更多優(yōu)質(zhì)代碼歡迎進(jìn)入小程序查看!

          往期推薦

          今日代碼 PK | 使用 Optional 判空

          今日代碼 PK | Java 使用正則表達(dá)式

          今日代碼 PK | 優(yōu)雅統(tǒng)計(jì)耗時(shí)

          今日代碼 PK | 日期時(shí)間處理

          今日代碼大賞 | MyBatis-Plus 優(yōu)雅查詢


          瀏覽 35
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕日韩成人电影 | 久久久精品少妇 | 少妇高潮视频 | 欧美一级娱乐 | 午夜无码鲁丝 |