100W的数据进行部分条件下的更新,除了IN方式有没有什么更好的选择?

findshine 2017-11-03 02:56:11
100W的数据进行部分条件下的更新,除了IN方式有没有什么更好的选择?

例如:

100W的数据,查出符合某个条件的10000数据要进行更新,那么除了查询这1W的数据后使用IN进行更新有没有什么更好效率的选择?
...全文
159 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kampoo 2017-11-09
通过表的关联查询来更新,比先SELECT 子查询 然后 IN 的效率要好些,举例如下: UPDATE a FROM a, b, c SET a.f1 = ... WHERE a.... = b.... AND a... = b....
  • 打赏
  • 举报
回复
zjcxc 2017-11-08
10000 条的更新,对于更新本身而言通常是不慢的,除非你的服务器不行,或者要更新的数据被其他锁住了 慢的通常是找数据上面,说就是说,如果你把 update 改写成 selct ,如果慢,那么 update 也慢,但如果你 select 没问题,update 则通常也不会有问题 update where 和 update where 主键 in (select 主键 where ) 通常是一样的,当然,也不完全确保,毕竟写法不一样,查询优化器分评估选择执行计划,这个执行计划有可能 不同
  • 打赏
  • 举报
回复
findshine 2017-11-08
引用 2 楼 zjcxc 的回复:
直接更新即可,UPDATE 既然你都会 IN 条件了,直接写条件有困难么?
update我知道,我是想问1000条的更新,1000条的更新相对IN岂不是慢了点,有没有比IN更快的sql写法或者其他
  • 打赏
  • 举报
回复
findshine 2017-11-08
引用 1 楼 rucypli 的回复:
为什么不直接更新 update tb set where xxx
假设有1000条符合条件,您这个岂不是要执行1000次,而IN只执行一次,难道不是IN效率更高么
  • 打赏
  • 举报
回复
zjcxc 2017-11-03
直接更新即可,UPDATE 既然你都会 IN 条件了,直接写条件有困难么?
  • 打赏
  • 举报
回复
rucypli 2017-11-03
为什么不直接更新 update tb set where xxx
  • 打赏
  • 举报
回复
相关推荐
发帖
MySQL
加入

5.6w+

社区成员

MySQL相关内容讨论专区
社区管理员
  • MySQL
申请成为版主
帖子事件
创建了帖子
2017-11-03 02:56
社区公告
暂无公告