当前位置:网站首页>MySQL批量更新
MySQL批量更新
2022-08-02 07:00:00 【web18224617243】
文章目录
直接update的弊端
最近做一个需求,更新3w条数据,一个一个update去更新的,结果花了80分钟,这样性能上很差,也容易阻塞,所以就找了一些MySQL批量更新的方式,在此记录一下
方法一;replace into
这种更新会将其它字段更新为默认值,因为它是先将重复记录删掉再更新,谨慎使用
replace into `user` (id,age) values (1,'2'),(2,'3'),(3,'4'),(4,'98');
-- > 时间: 0.038s
方法二:insert into [table] values… on duplicate key update
这种方式应该也是删掉记录,再更新,但是保存的原来的其它字段数据,所以其它字段不会改变
insert into `user`(id,age) values (1,'5'),(2,'7'),(3,'2'),(4,'198') on duplicate key update age=values(age)
-- > > 时间: 0.017s
方法三:创建临时表
创建临时表,将更新数据插入临时表,再执行更新,需要有建表权限
DROP TABLE if EXISTS tmp;
-- > 时间: 0.016s
create temporary table tmp(id int(4) primary key,age varchar(50));
-- > 时间: 0.01s
insert into tmp values (1,'13'), (2,'16'),(3,'18'),(4,'18');
-- > 时间: 0.009s
update `user`, tmp set `user`.age=tmp.age where `user`.id=tmp.id;
-- > 时间: 0.022s
方法四:使用MySQL自带批量更新语句
update `user`
set age = CASE id
WHEN 1 THEN '22'
WHEN 2 THEN '22'
WHEN 3 THEN '22'
WHEN 4 THEN '22'
END WHERE id IN(1,2,3,4);
-- > 时间: 0.015s
update (表名)
set (更新字段) = case (被更新字段)
when (被更新字段值) then (更新字段值)...
end where (被更新字段) in((被更新字段值)...)
举例说明:set age = CASE id WHEN 1 THEN ‘22’
简单来说就是以id为查询条件,当id=1时更新age=22
,where语句提高了sql的执行效率,先过滤需要修改的记录然后再更新。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- Xilinx约束学习笔记—— 时序约束
- 使用hutool做本地缓存的工具类
- MQ带来的一些问题、及解决方案
- Splunk Filed Alias 字段改名
- gdalinfo: error while loading shared libraries: libgdal.so.30: cannot open shared object file: No su
- FormData上传二进制文件、对象、对象数组
- 【图像去噪】基于matlab双立方插值和稀疏表示图像去噪【含Matlab源码 2009期】
- 从云计算到函数计算
- Facebook社媒营销的5大技巧,迅速提高独立站转化率!
- Resolving C# non-static field, method or property "islandnum.Program.getIslandCount(int[][], int, int)" requires an object reference
猜你喜欢
随机推荐
System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。不可 访问的日志: Security
【ROS基础】rosbag 的使用方法
【暑期每日一题】洛谷 P1551 亲戚
张驰咨询:企业实施精益管理的最大障碍,只把精益作为一种工具和方法
mysql 注入
结构体大小计算--结构体内存对齐
暑假第五周总结
以训辅教,以战促学 | 新版攻防世界平台正式上线运营!
[21天学习挑战赛——内核笔记](一)——设备树的概述(硬件、目标、效果、文件类型)
请教一下,Flink SQL ,JDBC sink 入 mysql 库,想要搞一个自增主键,要怎么写
【机器学习】实验5布置:AAAI会议论文聚类分析
Go 实现分布式锁
【云原生】如何快速部署Kubernetes
实验7 MPLS实验
队列题目:无法吃午餐的学生数量
在VMware上安装Metasploitable2
初探形式化方法基本原理
【故障诊断分析】基于matlab FFT轴承故障诊断【含Matlab源码 2001期】
聊天机器人如何提升独立站的营销水平?
技术管理三级跳


![WebGPU 导入[2] - 核心概念与重要机制解读](/img/8f/195a3b04912d8872d025df58ab5960.png)






