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

MySql几十万条数据,同时新增或者修改

项目场景:

十万条甚至更多的数据新增或者修改


问题描述

现在有十万条数据甚至更多数据,在这些数据中,有部分数据存在数据库中,有部分数据确是新数据,存在的数据需要更新,不存在的数据需要新增


原因分析:

几十万的数据有新增,有修改,我们肯定不能去每条都要去数据库查询验证是否存在,这样数据库也扛不住


解决方案:

提示:有两种解决方案简单记录下,在mybatis中使用的场景

1、第一种解决方式,使用on duplicate key update,主键重复去修改,不重复就新增这里的order_id就是主键

<insert id="addOrUpdateKryOrderMst" parameterType="list">insert into ${schema}.me_kry_order_mst(`order_id`,`trade_no`,`trade_type`,`trade_status`,`order_time`,`check_out_time`,`source`,`source_name`,`received_amount`,`cust_real_pay`,`trade_amount`,`privilege_amount`)values<foreach collection="kryOrderMstParam" item="item" separator=",">(#{item.orderId}, #{item.tradeNo}, #{item.tradeType}, #{item.tradeStatus}, #{item.orderTime}, #{item.checkOutTime}, #{item.source}, #{item.sourceName}, #{item.receivedAmount}, #{item.custRealPay}, #{item.tradeAmount}, #{item.privilegeAmount})</foreach>on duplicate key updatetrade_no =values (trade_no), trade_type =values (trade_type), trade_status =values (trade_status), order_time =values (order_time), check_out_time =values (check_out_time), `source` =values (`source`), source_name =values (source_name), received_amount =values (received_amount), cust_real_pay =values (cust_real_pay), trade_amount =values (trade_amount), privilege_amount =values (trade_amount)</insert>

2、第二种解决方式,使用replace into,若是主键存在就删除重新新增一条

    <insert id="addOrUpdateKryOrderMst" parameterType="list">replace into ${schema}.me_kry_order_mst(`order_id`,`trade_no`,`trade_type`,`trade_status`,`order_time`,`check_out_time`,`source`,`source_name`,`received_amount`,`cust_real_pay`,`trade_amount`,`privilege_amount`)values<foreach collection="kryOrderMstParam" item="item" separator=",">(#{item.orderId}, #{item.tradeNo}, #{item.tradeType}, #{item.tradeStatus}, #{item.orderTime}, #{item.checkOutTime}, #{item.source}, #{item.sourceName}, #{item.receivedAmount}, #{item.custRealPay}, #{item.tradeAmount}, #{item.privilegeAmount})</foreach></insert>

写的不好,请各位看官多多担待,勿喷谢谢,有需要补充请留言!

http://www.lryc.cn/news/372266.html

相关文章:

  • 如何提高MySQL DELETE 速度
  • 本地Zabbix开源监控系统安装内网穿透实现远程访问详细教程
  • 从Android刷机包提取System和Framework
  • 分布式光纤测温DTS与红外热成像系统的主要区别是什么?
  • python数据分析-问卷数据分析(地理课)
  • 【ARM64 常见汇编指令学习 19.3 -- ARMv8 三目运算指令 csel 详细介绍】
  • Docker 安装部署(CentOS 8)
  • Python自动化
  • 自然语言处理领域的重大挑战:解码器 Transformer 的局限性
  • 【机器学习】机器学习赋能医疗健康:从诊断到治疗的智能化革命
  • Elasticsearch6.7版本,内网中其他电脑无法连接
  • 交友系统定制版源码 相亲交友小程序源码全开源可二开 打造独特的社交交友系统
  • 数据结构笔记39-48
  • 2-3 基于matlab的NSCT-PCNN融合和创新算法(NSCT-ML-PCNN )图像融合
  • 机器学习笔记 - LoRA:大型语言模型的低秩适应
  • 基于python实现视频和音频长度对齐合成并添加字幕
  • 爬虫-模拟登陆博客
  • 【深度学习】【NLP】Bert理论,代码
  • element table 点击某一行中按钮加载
  • Linux开机自启/etc/init.d和/etc/rc.d/rc.local
  • DP:两个数组的dp问题
  • 嵌入式Linux:格式化I/O
  • 【elementui源码解析】如何实现自动渲染md文档-第二篇
  • 热门开源项目OpenHarmony
  • NewspaceAi之GPT使用新体验
  • 详解红黑树
  • 探索JavaScript逆向工程与风控等级
  • C++ 22 之 立方体案例
  • vue2使用antv/g6-editor实现可拖拽流程图
  • springboot学习小结