1.insert into values、insert into select

INSERT INTO t
VALUES(1, 20, 'a'),(2, 26, 'b');-- 两张表的字段要一一对应
INSERT INTO t SELECT * from t_copy where id = 1;

注:insert into values 或 insert into select批量插入时,都满足事务的原子性与一致性,一条出错整体都会回滚。在使用insert into select时,MySQL会对select的数据加S(读)锁,在事务较为复杂的场景下可能有死锁的风险

2.replace into

replace into表示插入替换数据,当记录中有PrimaryKey,或者unique索引的话,如果数据库已经存在数据,则用新数据替换(先delete再insert),如果没有数据效果则和insert into一样。

REPLACE INTO t (id,age) VALUES (2, 15);

3.insert into on duplicate key update

insert into on duplicate key update表示插入更新数据,当记录中有PrimaryKey,或者unique索引的话,如果数据库已经存在数据,则用新数据更新(update),如果没有数据效果则和insert into一样。


INSERT INTO t (id, age)
VALUES (3, 28),(4, 29)
ON DUPLICATE KEY UPDATEid = VALUES(id),age = VALUES(age);

4.insert ignore into

insert ignore into表示尽可能的忽略冲突

INSERT IGNORE INTO t VALUES(1,30,'f'),(6,33,'o');

总结
1.insert into values 或 insert into select批量插入时,都满足事务的原子性与一致性,但要注意insert into select的加锁问题。
2.replace into与insert into on duplicate key update都可以实现批量的插入更新,具体是更新还是插入取决与记录中的pk或uk数据在表中是否存在。如果存在,前者是先delete后insert,后者是update。
3.insert ignore into会忽略很多数据上的冲突与约束,平时很少使用。

mysql 批量插入(记录帖)相关推荐

  1. mysql批量插入 增加参数_MySql 的批量操作,要加rewriteBatchedStatements参数

    MySql 的批量操作,要加rewriteBatchedStatements参数 作者:赵磊 博客:http://elf8848.iteye.com ------------------------- ...

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

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

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

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

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

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

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

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

  6. mysql 批量插入亿级数据做测试用

     mysql 批量插入亿级数据做测试用 表结构: -- 性能提升 SELECT COUNT(*) from `user`.`user` ; SHOW VARIABLES; set session bu ...

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

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

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

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

  9. Mysql 批量插入大量数据的两种方案以及优缺点(分别是 5W 条数据和 10W 条数据)

    Mysql 批量插入(5W 条数据和 10W 条数据) 1.批量插入思路 一般是有两种不同的思路: 1.for 循环批量插入 2.生成一条 SQL 语句,比如 insert into user(id, ...

  10. MySQL 批量插入:如何不插入重复数据?

    以下文章来源方志朋的博客,回复"666"获面试宝典 知识这个东西,看来真的要温故而知新,一直不用,都要忘记了???? 业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表 ...

最新文章

  1. 博客5:文件,目录以及用户的权限管理
  2. anaconda创建环境
  3. 线性基+树上倍增 ---- BZOJ4568[线性基+树上倍增]
  4. 多个不同的app应用间应该如何进行消息推送呢?
  5. jquery图片幻灯片(小图列表,大图展示)
  6. redis特点单进程单线程高性能服务器,Redis为什么是单线程?Redis又为什么这么快!...
  7. 017_python常用小技巧
  8. java文本框默认格式化,XJL:Swing中的格式化文本框
  9. 读取其他软件页面数据_电脑软件分享之硬盘数据完美恢复
  10. 敏捷个人A1组第二次讨论纪要 你在事业上打算何去何从?
  11. 动态规划之01背包问题(含代码C)
  12. 国科大学习资料--模式识别与机器学习(黄庆明)--期末复习题1(含答案)
  13. 读书笔记:学习C语言必须读的第二本书
  14. 图片去水印的原理_图片去水印方法 图片如何去掉水印
  15. Sklearn 卡方检验
  16. ==和 equals 的区别
  17. sql server2000挂起的解决方法
  18. oracle 表变化监控,oracle 怎么 监控数据变化
  19. 招投标法、合同法、采购法
  20. DNA存储技术—让信息保存万年

热门文章

  1. 同义词转换不再有效_1秒变电脑,手机吃鸡新体验,北通E1键鼠转换器上手体验!...
  2. 初识数据分析利器SPSS
  3. 太极软件qn的代码_多版本QQ内置qn、qx模块
  4. 部署calico网络的k8s集群
  5. TCL语言语法简介(上)
  6. 数控机床CNC编程入门【G-code】
  7. GMM R语言程序 gmm包的使用
  8. 应急管理大数据ppt_大数据在应急管理中的应用
  9. AEJoy —— 表达式之弹性(韧性)模拟详解【JS】
  10. 多线程QThread的两种启用用法