91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

绿春县| 海口市| 靖西县| 五原县| 莱阳市| 舞钢市| 文登市| 海口市| 湘阴县| 大田县| 三原县| 广水市| 聊城市| 涿州市| 虞城县| 上林县| 东港市| 龙口市| 池州市| 凯里市| 禄丰县| 英超| 冀州市| 安阳县| 东海县| 公安县| 枣庄市| 永嘉县| 西贡区| 临洮县| 台前县| 公主岭市| 罗源县| 义马市| 新平| 上林县| 鹿泉市| 秭归县| 乌鲁木齐县| 德阳市| 普兰店市|