背景

业务中存在唯一索引,插入的批量数据中可能存在已有数据,此时可用一条sql快速完成,无需写业务判断。

原始sql

# 其中stock_id, date为唯一所以
insert into mart_kline(stock_id, red_red_rate, red_green_rate, date)
values ('stockId1', 0.5, 1.0, '2021-12-19'),('stockId2', 0.51, 1.2, '2021-12-20'),('stockId3', 0.52, 1.3, '2021-12-21')
on duplicate key
update red_red_rate=values(red_red_rate),red_green_rate=values(red_green_rate)

mybatis写法

<insert id="serversInsertOrUpdate" useGeneratedKeys="true" keyProperty="id">insert into mart_kline(stock_id, red_red_rate, red_green_rate, date)values <foreach collection="servers" separator="," item="server">(#{server.stockId},#{server.red_red_rate},#{server.red_red_rate},#{server.date})</foreach>on duplicate key update red_red_rate=values(red_red_rate),red_green_rate=values(red_green_rate)</insert>

python

sql_kline = 'insert into mart_kline(stock_id, day_line_5, day_line_10, day_line_20, day_offset_5, day_offset_10, ' \'day_offset_20, red_red_rate, red_green_rate, date)' \'values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) ' \'on duplicate key update red_red_rate=values(red_red_rate), red_green_rate=values(red_green_rate)'
cur.executemany(sql_kline, kline)

mysql 批量 插入或更新相关推荐

  1. mysql批量插入跟更新_Mysql批量插入和更新的性能-问答-阿里云开发者社区-阿里云...

    利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...

  2. mysql批量插入跟更新_Mysql批量插入和更新的性能

    利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...

  3. MySQL批量插入与更新

    目录 准备表和测试数据 insert into values.insert into select replace into insert into on duplicate key update i ...

  4. Mysql批量插入更新性能优化

    Mysql批量插入更新性能优化 对于数据量较大的插入和更新,因io/cpu等性能瓶颈,会产生大量的时间消耗,目前主流的优化主要包括预编译.单条sql插入多条数据.事务插入等,下面详细介绍一下: 单条插 ...

  5. node.js中mysql批量插入更新的三种方法

    [背景]在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"."mysql批量插入"等, ...

  6. Mysql批量插入数据问题解决和优化

    Mysql批量插入数据问题解决和优化 一.问题描述 项目中mysql批量插入大概50000左右数据,使用事务和批量,但是速度依旧很慢,大约60s左右,迫切希望改进这个问题. 二.问题原因 尽管是批量a ...

  7. 批量插入或更新数据(MyBatis-plus框架)

    目录 1.场景说明 2.DUPLICATE 和REPLACE比较 3.批量插入或者更新(两种方式) 方式一:mybatis-plus的saveOrUpdateBatch方法 问题:如果操作类集成了基础 ...

  8. pg批量插入_PostgreSQL实现批量插入、更新与合并操作的方法

    前言 就在 2019 年 1 月份微软收购了 PostgreSQL 数据库的初创公司 CitusData, 在云数据库方面可以增强与 AWS 的竟争.AWS 的 RDS 两大开源数据库就是 MySQL ...

  9. PostgreSQL实现批量插入、更新与合并操作的方法_PostgreSQL_脚本之家

    前言 就在 2019 年 1 月份微软收购了 PostgreSQL 数据库的初创公司 CitusData, 在云数据库方面可以增强与 AWS 的竟争.AWS 的 RDS 两大开源数据库就是 MySQL ...

  10. MYSQL批量插入数据库实现语句性能分析

    MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下   CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( ...

最新文章

  1. centos6卸载mysql服务器_CentOS6.5下卸载自带的MySQL数据库安装MySQL5.6
  2. spi flash 无法写入数据_非易失性Flash详解
  3. oracle查询各个池的使用率,oracle查询连接数、并发数、共享池大小
  4. TensorFlow | 使用Tensorflow带你实现MNIST手写字体识别
  5. LeetCode 676. 实现一个魔法字典(哈希)
  6. 来自顶级名校推荐的英文书单,留着慢慢啃!
  7. NLP:语言模型与n元语法
  8. android中实现“再按一次退出”功能
  9. mysql员工与部门代码,springMVC入门实例(员工系统-Mysql)代码简单易懂
  10. java计算机毕业设计网络课程答疑系统MyBatis+系统+LW文档+源码+调试部署
  11. visual studio设置背景颜色为眼睛保护色
  12. 游戏付费中的金融学和心理学小知识
  13. 香港流行乐坛三十年(很好的回忆)
  14. 软件工程师 级别 职称 评定 从见习程序员 到 主任软件工程师
  15. jdk9 jdk10 jdk11启动rocketMQ的问题
  16. 清华姚班教授:​我见过太多博士生精神崩溃,身体垮掉,一事无成
  17. 微信小程序获取手机号登录流程
  18. JS简单实现动态抽奖机
  19. android 仿qq 通讯录,Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展[图文+源码]...
  20. 中文与unicode转换

热门文章

  1. aliez歌词_请问aLiez完整版中文 +罗马音歌词
  2. php二维码与电子名片
  3. SSM框架的整合原理以及执行流程
  4. App测试工具列表整理
  5. 运维人员须熟悉的38个运维工具汇总
  6. 虚幻4 配置打包安卓
  7. 剔除水印软件Inpaint 7.2 中文破解版 微笑一刀作品
  8. google四件套之Dagger2。从入门到爱不释手,之:Dagger2进阶知识及在Android中使用
  9. 1.通俗地理解贝叶斯公式(定理)
  10. 自学QT之qss教程