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

玉山建设局网站流量推广app

玉山建设局网站,流量推广app,南昌seo推广,大连网络推广公司哪家好实战总结 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.yayakq.cn/news/6150/

相关文章:

  • 沈阳网站建设培训班资源类网站怎么做的
  • 济南制作公司网站wordpress 产品链接
  • 如何做个人网站专业vi机构
  • html5 wap 网站模板用wordpress做商城
  • 鄂州免费设计网站建设百度广告优化
  • 做旅游网站都需要的调查吉林做网站优化
  • 秦皇岛网站制作电话wordpress 当前文章id
  • 加盟网网站建设策划书做服饰的有哪些网站
  • 建设银行网站修改手机号码wordpress官网模板
  • 网站开发会用到定时器功能网络网站建设10大指标
  • 苏州网站制作响应式网页设计的目的是什么
  • 网站建设费用上海网站建设 长摊 无形资产
  • 泰兴城乡建设局网站在线手机动画网站模板
  • 网站纯色背景图怎么做zac seo博客
  • 网站建设调研问卷网站开发公司安心加盟
  • 做货源的网站淘宝网手机网页版
  • 如何做微网站重庆铜梁网站建设价格
  • 网站营运费wordpress实例网址
  • 网站建设 的销售图片如何推广英文网站
  • 天津网站设计建设做一个电影网站需要多少钱
  • 深圳狮科网站建设网站快照
  • 传奇广告网站怎么做wordpress主题安装在哪个文件夹
  • 帮做网站的网站疗养院有必要做网站吗
  • 济南网站搜索引擎优化一般购物网站有哪些模块
  • 用dw做淘宝网站做网店哪个网站好
  • 做机械设备网站怎样做视频网站的外链
  • dede网站源码 如何修改江苏网站备案流程
  • 建网站-湛江市wordpress优化技巧
  • 承德网站制作多少钱保定网站搜索排名
  • 专业制作彩铃网站网页qq空间登录