精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Mybatis-Plus很好,但是我被它坑了!

開發 前端
mybatis plus? 給開發人員帶來了很多便利,但是其中也有一些坑點,比如上文所提到得批量操作耗時問題,如果不注意的話,就有可能調入坑里,各位開發同學可以檢查自己或者公司項目中 jdbcurl? 是否缺失 rewriteBatchedStatements=true 參數,加以改正,避免重復掉入這個坑里。

作者今天在開發一個后臺發送消息的功能時,由于需要給多個用戶發送消息,于是使用了 mybatis plus 提供的 saveBatch() 方法,在測試環境測試通過上預發布后,測試反應發送消息接口很慢得等 5、6 秒,于是我就登錄線上環境查看執行日志,發現是 mybatis plus 提供的 saveBatch() 方法執行很慢導致,于是也就有了本篇文章。

mybatis plus 是一個流行的 ORM 框架,它基于 mybatis,提供了很多便利的功能,比如代碼生成器、通用 CRUD、分頁插件、樂觀鎖插件等。它可以讓我們更方便地操作數據庫,減少重復的代碼,提高開發效率。

案發現場還原

/**
 * 先保存通知消息,在批量保存用戶通知記錄
 */
@Transactional(rollbackFor = Exception.class)
@Override
public boolean saveNotice(Notify notify, String receiveUserIds) {
    long begin = System.currentTimeMillis();
    notify.setCreateTime(new Date());
    notify.setCreateBy(ShiroUtil.getSessionUid());
    if (notify.getPublishTime() == null) {
        notify.setPublishTime(new Date());
    }
    boolean insert = save(notify);
    List<NotifyRecord> collect = new ArrayList<>();
    List<String> receiveUserList = fillNotifyRecordList(notify, receiveUserIds, collect);
    notifyRecordService.saveBatch(collect);
    long end = System.currentTimeMillis();
    System.out.println(end - begin);
    ...
    return insert;
}

/**
 * 根據用戶id,組裝用戶通知記錄集合,返回200條記錄
 */
public List<String> fillNotifyRecordList(Notify notify, String receiveUserIds, List<NotifyRecord> collect) {
    List<String> noticeRecordList = new ArrayList<>(200);
    ...
    // 組將兩百條用戶通知記錄
    return noticeRecordList;
}

如上代碼,我有一個 saveNotice() 方法用于保存通知消息以及用戶通知記錄。執行邏輯如下,

  1. 保存通知消息
  2. 根據用戶 id,組裝用戶通知記錄集合,返回 200 條用戶通知記錄
  3. 批量保存用戶通知記錄集合

前兩步驟耗時都很少,我們直接看第三步操作耗時,結合 sql 執行日志,如下,

-- slow sql 5542 millis. INSERT INTO oa_notify_record  ( notifyId, receiveUserId, receiveUserName, isRead,  createTime )  VALUES  ( ?, ?, ?, ?,  ? )[225,"fcd90fe3990e505d07c90a238f75e9c1","niuwawa",false,"2023-10-30 23:54:04"]
5681

再結合 mybatis free log 插件打印完整 sql 如下圖,

圖片圖片

可以看出,我們批量保存用戶通知記錄是一條記錄一條進行保存得,已經可以猜測就是批量插入方法導致得耗時較高。

這里使用得是 mybatis log free 插件,它可以自動幫我們在控制臺打印完整得 mybatis sql 語句。有需要可以在 idea 插件中心搜索 mybatis log free 下載安裝。

結合 saveBatch() 底層源碼也能夠看出,mybatis plus 對于批量操作是通過 for 循環執行保存操作得,源碼如下圖,

圖片圖片

到這里我們也就知道了在測試環境執行較快得原因,因為在測試環境需要批量保存得用戶通知記錄比較少,只有幾條記錄,所以很快。但是上預發布后,由于預發布中需要批量保存得用戶通知記錄比較多達到了數百條,所以執行較慢,耗時達到了 5、6 秒之久。

解決方法

到這里,也就是本文得重點所在了,那怎么解決這個問題嘞?如何既利用 mybatis plus 提供得便攜性,也能夠解決批量操作耗時較高得問題。

其實解決方法很簡單,只需要在 jdbcurl 上添加 rewriteBatchedStatements=true 參數即可解決這個問題。

MySQL 的 JDBC 連接的 url 中要加 rewriteBatchedStatements 參數,并保證 5.1.13 以上版本的驅動,才能實現高性能的批量插入。

MySQL JDBC 驅動在默認情況下會無視 executeBatch()語句,把我們期望批量執行的一組 sql 語句拆散,一條一條地發給 MySQL 數據庫,批量插入實際上是單條插入,直接造成較低的性能。只有把 rewriteBatchedStatements 參數置為 true, 驅動才會幫你批量執行 SQL。另外這個選項對 INSERT/UPDATE/DELETE 都有效。

rewriteBatchedStatements=true 的意思是,當你在 Java 程序中使用批量插入/修改/刪除(batching)時,MySQL JDBC 驅動程序將嘗試重新編寫(rewrite)你的 SQL 語句,以便更有效地執行這些批量插入操作。

OK,在我們給 jdbcurl 上添加了參數后,看看效果,如下圖,

圖片圖片

可以看到 jdbcurl 添加了 rewriteBatchedStatements=true 參數后,批量操作的執行耗時已經只有 200 毫秒,自此也就解決了 mybatis plus 提供的 saveBatch() 方法執行耗時較高得問題。

總結

mybatis plus 給開發人員帶來了很多便利,但是其中也有一些坑點,比如上文所提到得批量操作耗時問題,如果不注意的話,就有可能調入坑里,各位開發同學可以檢查自己或者公司項目中 jdbcurl 是否缺失 rewriteBatchedStatements=true 參數,加以改正,避免重復掉入這個坑里。

責任編輯:武曉燕 來源: waynblog
相關推薦

2023-07-29 22:02:06

MyBatis數據庫配置

2024-12-20 16:49:15

MyBatis開發代碼

2025-02-06 07:45:44

2024-08-27 09:02:21

2025-02-27 09:45:47

2023-06-07 08:08:37

MybatisSpringBoot

2023-06-14 08:34:18

Mybatis死鎖框架

2023-06-07 08:00:00

MySQL批量插入

2022-07-15 13:58:46

工具MyBatissql

2013-06-20 11:11:00

程序員經理

2025-06-13 09:30:50

2025-10-28 01:15:00

2020-04-14 10:06:20

微服務Netflix語言

2025-05-26 03:20:00

SpringMyBatis數據權限

2025-07-10 09:32:23

2024-11-28 19:03:56

2024-02-28 09:35:52

2024-07-31 09:56:20

2025-02-13 07:59:13

2023-01-17 09:13:08

Mybatis后端框架
點贊
收藏

51CTO技術棧公眾號

欧美一级片一区| 在线一区二区三区做爰视频网站| 2014亚洲精品| 天天爽夜夜爽夜夜爽精品| 国产成人三级| 日韩一区二区三区电影| 久久久久久久久久久福利| 美女免费久久| 久久免费看少妇高潮| 91精品视频观看| 青青草免费观看视频| 99久久国产综合精品成人影院| 精品国产一区a| 手机看片一级片| 麻豆蜜桃在线观看| 中文字幕乱码亚洲精品一区| 不卡视频一区二区三区| 中文字幕+乱码+中文乱码91| 亚洲网站啪啪| 自拍亚洲一区欧美另类| 亚洲av成人片色在线观看高潮 | 亚洲男人的天堂网| 久久综合给合久久狠狠色| 一级片视频播放| 国产一区导航| 欧美高清视频免费观看| 色www亚洲国产阿娇yao| 欧美天堂影院| 欧美va亚洲va香蕉在线| 欧美一级视频在线| 成人福利av| 亚洲五码中文字幕| 手机在线视频你懂的| 六十路在线观看| 99久久精品久久久久久清纯| 91牛牛免费视频| 伊人亚洲综合网| 久久精品官网| 欧美一级片一区| www.av麻豆| 国内自拍一区| 久久久久久国产| 国产波霸爆乳一区二区| 国产精品久久久久久麻豆一区软件 | 欧美牲交a欧美牲交aⅴ免费下载| 免费在线播放电影| 亚洲精品视频免费观看| 一区国产精品| 含羞草www国产在线视频| 国产精品天天摸av网| 日韩av电影在线观看| 欧美日韩在线精品一区二区三区激情综| 成人综合激情网| 成人免费视频观看视频| 亚洲精品网站在线| 高清在线成人网| 国产高清精品一区二区三区| 亚洲国产精品无码久久| 国产成人免费视频网站高清观看视频| 亚洲自拍偷拍在线| 亚洲国产精品久久久久久久| 高清视频一区二区| 国产一区二区三区高清| 天天干天天草天天射| 91污片在线观看| 日本不卡一区二区三区在线观看| 欧美日韩视频精品二区| 久久先锋资源网| 神马一区二区影院| а√中文在线8| 一区二区三区不卡视频在线观看| 亚洲国产一二三精品无码| 欧洲黄色一区| 色综合色狠狠综合色| 成人午夜激情av| 亚洲欧洲日韩精品在线| 日韩欧美成人激情| 亚洲一级av无码毛片精品| 九色精品91| 色偷偷av一区二区三区乱| 极品久久久久久| 亚洲三级电影在线观看| 欧美在线视频网| 怡红院男人的天堂| 国产成人精品免费视频网站| 精品乱码一区| 视频三区在线| 亚洲午夜久久久久久久久电影网| 九色在线视频观看| 日韩黄色在线| 亚洲高清不卡av| 亚洲毛片亚洲毛片亚洲毛片| 雨宫琴音一区二区三区| 欧美一级淫片丝袜脚交| 中文字幕 欧美激情| 成人妖精视频yjsp地址| 日本不卡一区二区三区在线观看| 在线电影福利片| 色偷偷88欧美精品久久久| 国产精品嫩草影视| 亚洲综合福利| 欧美成人小视频| 成人免费毛片男人用品| 精品一区二区久久| 欧美凹凸一区二区三区视频| 顶级网黄在线播放| 91成人免费在线视频| 久久无码专区国产精品s| 精品国产一区二区三区| 992tv成人免费视频| 7777久久亚洲中文字幕| 99国产欧美另类久久久精品 | 黄色av日韩| 国产精品久久久久久久久久东京| 国精产品一品二品国精品69xx| 欧美国产日本视频| aa在线免费观看| 久久国际精品| 日韩性xxxx爱| 国产精品免费无遮挡无码永久视频| 国产不卡一区视频| 天堂v在线视频| 精品视频在线一区二区在线| 日韩成人在线网站| 精品一区二区三区四| 精品亚洲欧美一区| 亚洲永久一区二区三区在线| 在线女人免费视频| 亚洲国产精品久久91精品| 99久久99久久精品国产| 美女在线一区二区| 色噜噜狠狠色综合网| 欧美91看片特黄aaaa| 亚洲国产小视频在线观看| 欧美精品一级片| 国产剧情一区二区三区| 制服丝袜综合日韩欧美| 黄色日韩网站| 一区二区三区天堂av| 久久影视中文字幕| 久久一日本道色综合| 久色视频在线播放| 色婷婷久久久| 欧美一级电影久久| 欧美色18zzzzxxxxx| 欧美午夜久久久| 欧美 日本 国产| 亚洲永久字幕| 欧洲一区二区在线观看| 日韩电影免费观| 亚洲午夜未删减在线观看| 日韩视频在线观看一区| 2021中文字幕一区亚洲| 麻豆av免费在线| 国产中文字幕一区二区三区| 国产精品扒开腿爽爽爽视频| 国产天堂在线| 欧美丝袜丝交足nylons图片| 亚洲av熟女国产一区二区性色| 日韩高清不卡在线| 亚洲国产午夜伦理片大全在线观看网站| 日本一区免费网站| 日韩网站免费观看高清| 精品国产av 无码一区二区三区| 亚洲精品欧美综合四区| 亚洲成年人av| 久久激情中文| 亚洲欧洲国产日韩精品| 国产精品麻豆| 亚洲18私人小影院| 国产女人在线视频| 4hu四虎永久在线影院成人| 欧美成人国产精品高潮| jvid福利写真一区二区三区| 午夜肉伦伦影院| 国产精品传媒精东影业在线| 国产精品高清一区二区三区| 伊人网在线播放| 日韩在线观看免费全| 性猛交富婆╳xxx乱大交天津 | 最新日韩中文字幕| 亚洲黄色小说网址| 色婷婷久久久久swag精品| 免费91在线观看| 成人手机电影网| 日日碰狠狠丁香久燥| 天天色天天射综合网| 激情五月综合色婷婷一区二区| 日本综合字幕| 欧美日韩国产成人在线| 黄色大片在线免费观看| 日韩一级完整毛片| 日韩黄色片网站| 亚洲国产精品一区二区www在线| 法国伦理少妇愉情| 国产精品一品视频| 欧美激情国产精品日韩| 影音先锋成人在线电影| 日本不卡在线播放| 一本一道久久a久久| 国产精品久久久91| 丁香影院在线| www.国产精品一二区| 天天干,天天操,天天射| 欧美精品国产精品| 日日夜夜狠狠操| 亚洲一区免费观看| 天天鲁一鲁摸一摸爽一爽| 久久久影视传媒| 国产乱国产乱老熟300部视频| 日韩国产高清在线| 春日野结衣av| 欧美精品一线| 午夜视频久久久| 欧洲在线一区| 国产精品久久久久久久小唯西川| 成人免费毛片嘿嘿连载视频…| 国外色69视频在线观看| a级网站在线播放| 中文字幕久热精品视频在线| 无码国精品一区二区免费蜜桃| 日韩一区二区三区四区五区六区| 中文字幕资源网| 色婷婷久久久亚洲一区二区三区| 亚洲国产综合久久| 亚洲一区二区三区精品在线| 99久久99久久精品国产| 国产精品第13页| 五月天精品视频| 91网站黄www| 免费a v网站| 不卡一区二区在线| 麻豆tv在线观看| 懂色av一区二区三区蜜臀| 182午夜视频| 精品一区二区三区久久久| 亚洲第一中文av| 日韩和欧美一区二区三区| 看欧美ab黄色大片视频免费 | 国产va免费精品观看精品视频| 国产伦精品一区二区三毛| 亚洲日本va| 91成人免费看| 日韩免费精品| 成人国产一区二区| 精品精品精品| 久久亚裔精品欧美| 自拍亚洲一区| 日韩经典在线视频| 精品国产中文字幕第一页| 色999五月色| 97精品国产一区二区三区| 中文网丁香综合网| 在线看片不卡| 日本一区午夜艳熟免费| 亚洲黄色成人| 国产日韩成人内射视频| 日韩电影一区二区三区四区| 自拍偷拍21p| 国模娜娜一区二区三区| gogo亚洲国模私拍人体| 粉嫩嫩av羞羞动漫久久久| 人妻激情偷乱频一区二区三区| av在线播放一区二区三区| 国产亚洲色婷婷久久99精品91| 91蝌蚪porny九色| 国产黄色片在线| 亚洲另类在线一区| 国产做受高潮漫动| 色88888久久久久久影院按摩 | 久久99国产精品久久| 国产91在线免费观看| 成人在线视频一区二区| 亚洲永久精品ww.7491进入| 欧美激情一区二区三区不卡| 一起操在线播放| 天天射综合影视| 日本三级一区二区三区| 91精品福利在线一区二区三区| 丰满人妻av一区二区三区| 日韩精品中文字幕在线| 午夜小视频在线| 久久久久久久久久久91| 另类中文字幕国产精品| 亚洲综合自拍一区| 亚洲欧美tv| 天天爱天天做天天操| 日韩亚洲在线| 在线观看国产一级片| 懂色一区二区三区免费观看| 中文字幕免费视频| 亚洲精选视频在线| 337p粉嫩色噜噜噜大肥臀| 欧美电影免费观看完整版| 国产在线视频你懂得| 欧美精品日韩三级| 日韩经典一区| 国产伦精品一区二区三区视频黑人 | 视频一区免费在线观看| 99久久综合网| 国产精品视频观看| 日韩成人一区二区三区| 欧美日韩三级在线| 亚洲 欧美 激情 小说 另类| 久久综合免费视频| 日韩精品三区| 国产精品一区二区免费看| 日本一区二区三区视频| 国产精品自拍片| 国产综合久久久久久久久久久久| 中文字幕av网址| 亚洲一区二区成人在线观看| 国产精品国产三级国产普通话对白| 日韩成人免费视频| 国产羞羞视频在线播放| 成人亚洲激情网| 大片网站久久| 少妇性l交大片| 91老师片黄在线观看| 国产一级在线视频| 欧美一区二区三区系列电影| 91青青在线视频| 国产成人精品免费视频| 欧美调教在线| 久久精品国产sm调教网站演员| 国产传媒欧美日韩成人| 亚洲伦理一区二区三区| 欧美午夜在线一二页| 三级国产在线观看| 2019亚洲男人天堂| 欧美调教在线| 久久久久久久久久网| 成人午夜碰碰视频| 麻豆chinese极品少妇| 在线不卡中文字幕| 欧美日韩在线看片| 国产精品夜间视频香蕉| 精品久久美女| 成人3d动漫一区二区三区| 久久久久久毛片| 亚洲va在线观看| 不卡视频免费在线观看| 欧美美女操人视频| 综合久久成人| 国产69精品久久久久999小说| 国产91在线|亚洲| 伊人365影院| 日韩av一区二区在线| 狠狠操一区二区三区| 久久精品国产精品青草色艺| 国产欧美午夜| 女女互磨互喷水高潮les呻吟| 欧洲亚洲精品在线| 日本视频在线免费观看| 亚洲a在线播放| 国产综合婷婷| 国产艳俗歌舞表演hd| 色婷婷综合久久久久中文 | 国产日韩欧美不卡| 中文字幕在线日亚洲9| 日韩午夜在线视频| 2021年精品国产福利在线| 国产 日韩 欧美在线| 91视频com| 一个人看的www日本高清视频| 久久精品中文字幕一区| 57pao国产一区二区| 成人免费aaa| 国产精品你懂的| av免费在线不卡| 57pao精品| 欧美精品一区二区久久| 日韩在线一区视频| 午夜激情一区二区三区| 国产资源在线看| 91影院在线免费观看视频| 在线国产欧美| 影音先锋男人在线| 日韩午夜激情免费电影| 在线最新版中文在线| 亚洲视频小说| av中文一区二区三区| 懂色av蜜臀av粉嫩av喷吹 | 亚洲人体视频| 99re99热| 2023国产一二三区日本精品2022| 在线免费观看高清视频| 久久久在线视频| 日韩欧美伦理| 大乳护士喂奶hd| 欧美日韩在线三级| 91美女主播在线视频| 亚洲bbw性色大片| 成人午夜大片免费观看| 天天干天天插天天射| 欧美激情视频网站| 久久精品国产68国产精品亚洲| 美女黄色一级视频| 欧美巨大另类极品videosbest| av资源新版天堂在线|