亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis兩種不同批量插入方式的區別有哪些

發布時間:2021-09-15 10:44:32 來源:億速云 閱讀:150 作者:小新 欄目:開發技術

小編給大家分享一下Mybatis兩種不同批量插入方式的區別有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

前言

本文使用 Mybatis 進行批量插入,比較兩種不同的插入方式的區別。

測試

批量插入注意事項:

1、連接數據庫時添加參數 allowMultiQueries=true,支持多語句執行,批處理

2、數據庫是否支持大量數據寫入,設置 max_allowed_packet參數保證批次提交的數據量

拼接 sql

public void batchDemo() {
        long start = System.currentTimeMillis();
        List<User> list = new ArrayList<>();
        for (int i = 0; i < 5000; i++) {
            User user = new User();
            user.setId(UUID.randomUUID().toString());
            user.setName("feiyangyang");
            user.setPwd("feiyangyang");
            list.add(user);
        }
        userService.batchForeach(list);
        long end = System.currentTimeMillis();
        System.out.println("---------------" + (start - end) + "---------------");
    }
<insert id="batchForeach" parameterType="com.fyy.druid.entity.User">
    insert into
    user(id,`name`,pwd)
    values
    <foreach collection ="userList" item="user" separator =",">
        (#{user.id}, #{user.name}, #{user.pwd})
    </foreach>
</insert>

batch插入

public void batchInsert() {
    long start = System.currentTimeMillis();
    SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH);
    UserService mapper = sqlSession.getMapper(UserService.class);

    for (int i = 0; i < 5000; i++) {
        User user = new User();
        user.setId(UUID.randomUUID().toString());
        user.setName("feiyangyang");
        user.setPwd("feiyangyang");
        mapper.batchInsert(user);
    }
    sqlSession.commit();
    long end = System.currentTimeMillis();
    System.out.println("---------------" + (start - end) + " ---------------");
}

注意:batch模式也有自己的問題,比如在Insert操作時,在事務沒有提交之前,是沒有辦法獲取到自增的id,這在某型情形下是不符合業務要求的

數據對比


拼接sql (ms)batch插入 (ms)
500條1744639
2000條269662473
5000條1736687382

看完了這篇文章,相信你對“Mybatis兩種不同批量插入方式的區別有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

左贡县| 综艺| 太康县| 祁阳县| 南郑县| 金秀| 偏关县| 江阴市| 湘阴县| 凤台县| 张家港市| 三门县| 棋牌| 桐柏县| 九台市| 克拉玛依市| 武冈市| 屯门区| 郓城县| 波密县| 濮阳市| 大理市| 图片| 磐石市| 蓬莱市| 天全县| 顺平县| 蒙阴县| 铅山县| 汉寿县| 大余县| 瑞金市| 天峨县| 苏尼特左旗| 天峨县| 南漳县| 平度市| 象山县| 东海县| 万州区| 哈尔滨市|