当前位置: 首页 > news >正文

玉山建设局网站专做婚礼logo的网站

玉山建设局网站,专做婚礼logo的网站,天水网站建设惠普,中石油第七建设公司官网实战总结 1.批量插入性能 1.批量插入性能差的原因 使用saveBatch()方法时#xff0c; MySQL JDBC驱动在默认情况下会无视executeBatch()语句#xff0c;把我们期望批量执行的一组sql语句拆散#xff0c;一条一条地发给MySQL数据库#xff0c;批量插入实际上是单条插入 MySQL JDBC驱动在默认情况下会无视executeBatch()语句把我们期望批量执行的一组sql语句拆散一条一条地发给MySQL数据库批量插入实际上是单条插入直接造成较低的性能。 查看对应源码 public static E boolean executeBatch(Class? entityClass, Log log, CollectionE list, int batchSize, BiConsumerSqlSession, E consumer) {Assert.isFalse(batchSize 1, batchSize must not be less than one, new Object[0]);return !CollectionUtils.isEmpty(list) executeBatch(entityClass, log, (sqlSession) - {int size list.size();int i 1;for(Iterator var6 list.iterator(); var6.hasNext(); i) {E element var6.next();consumer.accept(sqlSession, element);if (i % batchSize 0 || i size) {sqlSession.flushStatements();}}});}最终来到了executeBatch()方法可以看到这很明显是在一条一条循环插入通过sqlSession.flushStatements()将一个个单条插入的insert语句分批次进行提交而且是同一个sqlSession这相比遍历集合循环insert来说有一定的性能提升但是这并不是sql层面真正的批量插入。 2.解决批量插入性能差方案 通过查阅相关文档后发现mybatisPlus提供了sql注入器我们可以自定义方法来满足业务的实际开发需求。 在扩展包下mybatisPlus还为我们提供了可扩展的可注入方法 AlwaysUpdateSomeColumnById 根据Id更新每一个字段全量更新不忽略null字段解决mybatis-plus中updateById默认会自动忽略实体中null值字段不去更新的问题 InsertBatchSomeColumn 真实批量插入通过单SQL的insert语句实现批量插入 Upsert 更新or插入根据唯一约束判断是执行更新还是删除相当于提供insert on duplicate key update支持。  那么现在开始解决批量插入性能差的问题 1.创建自定义sql注入器并继承DefaultSqlInjector /*** author zhmsky* date 2022/8/15 15:13*/ public class MySqlInjector extends DefaultSqlInjector {Overridepublic ListAbstractMethod getMethodList(Class? mapperClass) {ListAbstractMethod methodList super.getMethodList(mapperClass);//更新时自动填充的字段不用插入值methodList.add(new InsertBatchSomeColumn(i - i.getFieldFill() ! FieldFill.UPDATE));return methodList;} }2.将自定义的sql注入器注入到Mybatis容器中 /*** author zhmsky* date 2022/8/15 15:15*/ Configuration public class MybatisPlusConfig {Beanpublic MySqlInjector sqlInjector() {return new MySqlInjector();} }3.业务开始使用 使用可以继承 BaseMapper 添加自定义方法 /*** author zhmsky* date 2022/8/15 15:17*/ public interface CommonMapperT extends BaseMapperT {/*** 真正的批量插入* param entityList* return*/int insertBatchSomeColumn(ListT entityList); }或者直接在业务中使用 public interface CpChickSupplyChainFlockProPreDMapper extends BaseMapperCpChickSupplyChainFlockProPreD {/*** 执行 executeBatch()语句实现真正的批量插入* param entityList* return*/int insertBatchSomeColumn(CollectionCpChickSupplyChainFlockProPreD entityList); } 执行后日志输出 mybatisPlus批量插入性能优化_mybatisplus高效批量_zhm_sky的博客-CSDN博客 2.批量删除性能 和批量插入的原因一样使用mybatisPlus的IService.removeBatchByIds默认的方法最后也是一条一条去执行的性能比较差。 所以在执行批量删除时不要使用IService的默认方法应该使用BaseMapper.deleteBatchIds方法它才是真正的执行了批量操作。 执行日志如下 08:49:12.538 [http-nio-9502-exec-2] DEBUG c.c.p.m.C.deleteBatchIds - [debug,137] - Preparing: DELETE FROM cp_chick_supply_chain_flock_pro_pre_d WHERE id IN ( ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? )
http://www.hkea.cn/news/14269407/

相关文章:

  • 申请微官网的网站wordpress如何去掉amp:
  • 电脑做ppt一般下载哪个网站好保定网站建设推广公司怎么样
  • seo推广优化费用网站内容优化的重要性
  • 域名备案 没有网站凡科建站电脑版网址
  • 网站如何做访客统计标书制作技巧
  • 阜宁做网站哪家公司最好网站建设秋实
  • 做公司网站用哪个空间好开平网站建设公司
  • 房源网站建设惠东县住房和城乡规划建设局网站
  • 哪个建设网站公司好微信可以上网
  • 做app 需要先做网站吗太原做网站培训
  • 做微商哪个网站比较好平面设计转行做什么比较好
  • 做网站的基本流程wordpress分享可见内容
  • 在游戏网站做中介合法可以建设一个网站
  • 衡水网站设计怎么做wordpress 文章查询
  • 企业网站建设基本原则seo网站推广方法
  • 企业门户网站建设思路wordpress 能源插件
  • 设计网站私单价格有效获客的六大渠道
  • gta5办公室网站建设中邢台网络公司做网站
  • 福州seo建站jquery 个人网站
  • 个人博客网站需求分析兰州企业做网站
  • 网站对接如何做微网站建设目的
  • 上哪儿找做网站的客户景德镇市建设局网站
  • 泉州模板建站哪家好网站关键词重要性
  • 免费企业网站报价绩溪做网站
  • 电商商城网站免费个人网站建设哪里好
  • 东莞哪家建网站公司好腾讯云网站建设教程
  • 网站建设全包广公司网站不备案吗
  • 那个网站教你做毕设的给公司做网站数据分析
  • 西部数码成品网站百度推广登录平台官网
  • 火锅料网站方案怎么做水贝网站建设