mysql update语句 in执行效率优化

本文探讨了MySQL中update语句的两种不同写法对于大量数据更新操作的影响。第一种方式使用子查询,可能导致执行效率低下,如耗时两小时未完成。而第二种方式采用join语法,优化了执行效率,能在几秒钟内完成相同任务。文章强调了避免使用子查询并优化join的方式可以显著提升更新效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、常用的mysql执行更新操作语句如下:

UPDATE table1 set num = num + 1 where id in (SELECT id FROM table2 WHERE date>'2017-05-09)

in条件的更新效率可优化使用join语法;
2、join预发更新操作

UPDATE table1 t1 INNER JOIN table2 t2 on t1.id = t2.id set t1.num = t1.num + 1 where t2.date>'2017-05-09'

1、要更新的数据大概 有10W多条  然后 我执行了下 结果 2个小时了 还是没 执行成功

pdate  table1 t  set t.column1 =0 where t.id in (select id from table2)  

 2、 sql 改成

update table1 t ,table2 b set t.column1=0 where t.id=b.id  

   几秒钟就执行成功  !!!

核心思路,mysql的update,pdate table1 t set t.column1 =0 where t.id in (select id from table2),这种写法很耗时,需要规避。改成update table1 t ,table2 b set t.column1=0 where t.id=b.id,效率会高很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值