当前位置:网站首页>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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 笔记本开机黑屏提示:ERROR 0199:System Security-Security password retry count exceeded
- 【CV】OpenVINO安装教程
- 敏捷、DevOps和嵌入式系统测试
- 倍福使用AdsRemote组件实现和C#的ADS通讯
- 吃透Chisel语言.31.Chisel进阶之通信状态机(三)——Ready-Valid接口:定义、时序和Chisel中的实现
- MPLS的相关技术
- Wuhan 2022 organizing of the high-performance computing added new ecological development of high-performance computing
- 聊天机器人如何提升独立站的营销水平?
- 查找最大的n个文件
- CSRF-跨站请求伪造-相关知识
猜你喜欢
随机推荐
实验7 MPLS实验
新产品立大功 伟世通第二季度营收双增
【机器学习】实验1布置:基于决策树的英雄联盟游戏胜负预测
有关 sql中的 concat()函数问题,如何拼接
你认同这个观点吗?大多数企业的数字化都只是为了缓解焦虑
聊天机器人如何提升独立站的营销水平?
责任链模式(Chain Of Responsibility)
第06章 索引的数据结构【2.索引及调优篇】【MySQL高级】
带手续费买卖股票的最大利益[找DP的状态定义到底缺什么?]
实验8 VLAN综合实验
Unity Shader学习(七)纹理图像的简单使用
php删除一维数组中一个值
59:第五章:开发admin管理服务:12:MongoDB的使用场景;(非核心数据,数据量比较大的非核心数据,人脸照片等隐私的小文件;)
hdu1752 copy
OC-NSNumber和NSValue一般用来装箱拆箱
深度学习网络模型的改进与调整
FaceBook社媒营销高效转化技巧分享
jvm 二之 栈帧内部结构
队列题目:无法吃午餐的学生数量
张驰课堂:六西格玛测量系统的误差分析与判定









