删除量:一次删除10000条。

第一种方式,通过delete from 表 where id in(一堆ID)的方式删除数据,首先把需要删除的数据从数据库查询出来,将ID传给mybatis框架,展示如下:

      <delete id="deleteById" parameterType="Map">DELETE FROM TBL_ACC_HIS_SOURCEWHERE ID IN<foreach item="id" index="index" collection="idList" open="(" separator="," close=")">#{id}</foreach></delete>

每次耗时数据如下:

[374, 206, 206, 205, 482, 231, 460, 297, 277, 218, 232, 203, 228, 272, 207, 280, 203, 195, 272, 374, 523, 314, 207, 222, 247, 275, 269, 203, 216, 190, 310, 225, 277, 238, 237, 213, 228, 235, 236, 204, 240, 217, 213, 191, 209, 260, 268, 317, 231, 207, 200, 203, 204, 202, 209, 217, 212, 310, 216, 253, 201, 204, 212, 191, 211, 200, 237, 234, 279, 194, 203, 250, 199, 228, 224, 238, 259, 279, 257, 299, 196, 264, 299, 210, 228, 227, 219, 203, 207, 328, 213, 237, 348, 315, 210, 219, 325, 236, 196, 197, 211, 229, 187, 276]

共执行104次,平均耗时243毫秒。

第二种方式,使用batch delete,代码如下:

    private void batchDeleteA(List<Long> ids){SqlSession batchSqlSession = getBatchSession();try {for (Long id : ids) {batchSqlSession.delete("AccHisSourceEntity.delete", id);}batchSqlSession.commit();} finally {BatchSqlSessionUtils.closeSqlSession(batchSqlSession);}}

    private SqlSession getBatchSession() {return BatchSqlSessionUtils.getSqlSession(sqlSessionFactory, ExecutorType.BATCH);}

其中AccHisSourceEntity.delete如下:

  <delete id="delete" parameterType="java.lang.Long" >delete fromTBL_ACC_HIS_SOURCEwhereID = #{id,jdbcType=BIGINT}</delete>

执行119次,每次耗时如下:

[454, 253, 230, 224, 219, 214, 217, 215, 203, 204, 240, 250, 243, 230, 272, 208, 205, 223, 450, 235, 282, 336, 266, 209, 212, 222, 214, 431, 256, 238, 209, 456, 199, 616, 207, 336, 249, 196, 232, 230, 291, 240, 212, 266, 245, 229, 217, 211, 218, 210, 211, 218, 222, 215, 200, 219, 208, 256, 208, 208, 248, 226, 220, 234, 219, 299, 478, 501, 251, 223, 510, 244, 265, 246, 278, 279, 244, 255, 251, 236, 260, 273, 246, 503, 280, 238, 256, 244, 255, 215, 217, 224, 220, 230, 236, 198, 252, 246, 270, 262, 263, 252, 233, 223, 262, 230, 478, 240, 269, 238, 232, 260, 232, 222, 228, 223, 231, 246, 247]

平均耗时:258

结论:几乎相同。

PS:如果采用查出一批数据,删除一批数据的方式。采用5000一批,比10000一批要快一些。

转载于:https://www.cnblogs.com/coolgame/p/8004481.html

DB2数据库关于delete in id和batch delete的性能对比相关推荐

  1. mybatis 向DB2数据库插入自增长的SQL语句报:DB2 SQL Error: SQLCODE=-798, SQLSTATE=428C9, SQLERRMC=ID, DRIVER=4.16.53

    mybatis 向DB2数据库插入自增长的SQL语句报如下错误: SQL语句: <insert id="addUser" parameterType="user&q ...

  2. Linux下安装DB2数据库步骤及常用命令

    前言: 最近有些项目在Linux下使用的是IBM的DB2数据库,感觉没MySQL那样容易了解深入,可能是DB2数据库更倾向于商业化,没MySQL那样开源,相关DB2的资源网上没MySQL那样普及,至于 ...

  3. DB2数据库常见问题汇总

    DB2数据库常见问题汇总 1.1 创建存储过程时需要注意变量声明的顺序 创建存储过程时,声明变量顺序不符合规范将提示: SQL0104N An unexpected token "" ...

  4. DB2数据库的基础学习

    DB2的特性 完全Web使能的:可以利用HTTP来发送询问给服务器. 高度可缩放和可靠:高负荷时可利用多处理器和大内存,可以跨服务器地分布数据库和数据负荷:能够以最小的数据丢失快速地恢复,提供多种备份 ...

  5. DB2数据库的简单使用

    DB2数据库的简单使用 1.sql中的当前时间:current timestamp 2.如果a.MAT_NO是null,则赋值为0的方法:NVL(TO_CHAR(trim(a.MAT_NO)),'0' ...

  6. DB2数据库的简单介绍和用法,编程序技巧

    DB2是IBM一种分布式数据库解决方案.说简单点:DB2就是IBM开发的一种大型关系型数据库平台.它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据.目前,D ...

  7. db2数据库表修改列为主键

    需要对一个已经有数据的表的列进行修改,列原属性是可以为空且有一个默认值,现在想修改为主键. 原来的ddl:column varchar(16) DEFAULT '0' 执行以下操作:(将列设为非空) ...

  8. IBM的DB2数据库常用命令及查询

    1. 打开命令行窗口 #db2cmd 2. 打开控制中心 #db2cmd db2cc 3. 打开命令编辑器 #db2cmd db2ce =====操作数据库命令===== 4. 启动数据库实例 #db ...

  9. db2常用命令大全 db2数据库中的操作命令

    DB2 常用命令,对于使用db2的朋友可以参考下.管理客户端从v9.7版本之后就不再带有控制中心了,而是使用 Data Studio Client.安装 DB2 数据库产品期间不会应用许可证密钥.但是 ...

最新文章

  1. Maya角色面部表情动画制作视频教程 Maya: Facial Rigging
  2. Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?
  3. ISME:长期进化实验揭示脱硫弧菌的硝酸盐耐受机制
  4. Android--近来学习总结(2017/3/27)
  5. 【Python基础】利用 Python 搞定精美网络图!
  6. 前端入门技巧之浏览器调试
  7. css变换transform 以及 行内元素的一些说明
  8. mask属性是css3的吗_使用CSS3 mask(蒙版,遮罩)属性实现超酷按钮悬停动画
  9. 作为一个上市公司HR,跟大家分享一些面试的真相
  10. selenium python实例录制运行_WEB自动化测试工具selenium录制器使用笔记
  11. android os苹果手机助手,深度系统V20(1003)内测招募:新增手机助手,支持安卓/iOS端...
  12. ASP.NE浏览时 无法显示 XML 页
  13. 导航抽屉(Google+与YouTube)
  14. CountDownLatch和cyclicbarrier的使用
  15. 题目管理后台系统_推荐一套GitHub开源通用后台管理系统
  16. 易筋SpringBoot 2.1 | 第十八篇:SpringBoot的JDBC异常
  17. 程序员有文化,多可怕!
  18. 程序员必须知道的硬件常识(一):打印机之彩印缺少某种颜色的解决方法
  19. 跨文化交际复习题及答案(超全的)
  20. JIRA 6.3.6 详细安装图解

热门文章

  1. PropertyGrid仿VS的属性事件窗口
  2. asp.net c# 常见面试试题总结汇总(含答案)
  3. 让LYNC 2010 登录OCS 2007 R2
  4. 手机发包工具_【发包工具】http多线程发包工具
  5. sqlplus连接oracle_Oracle数据库建立
  6. GDAL使用DEM数据计算山体阴影(Hillshade)
  7. 深入浅出Docker(五):基于Fig搭建开发环境
  8. MemCache详细介绍
  9. mysql server再次安装失败_MySQL在windows上多次安装失败
  10. msiafterburner并行配置不正确_dubbo常用配置及使用场景