iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql批量更新update
  • 699
分享到

mysql批量更新update

mysql数据库 2023-08-31 16:08:09 699人浏览 薄情痞子
摘要

引言:Mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,这样性能很差,也很容易造成阻塞,例如几百条或几千条数据需要同时更新,一条条更新就会很慢了,下面介绍mysql 批量更新的以下四种办法 1、replace i

引言:Mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,这样性能很差,也很容易造成阻塞,例如几百条或几千条数据需要同时更新,一条条更新就会很慢了,下面介绍mysql 批量更新的以下四种办法

1、replace into 批量更新

replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y');

2、insert into ...on duplicate key update批量更新

insert into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y') on duplicate key update dr=values(dr);

3.创建临时表,先更新临时表,然后从临时表中update

  1. create temporary table tmp(id int(4) primary key,dr varchar(50));
  2. insert into tmp values  (0,'Gone'), (1,'xx'),...(m,'yy');
  3. update test_tbl, tmp set test_tbl.dr=tmp.dr where test_tbl.id=tmp.id;

注意:这种方法需要用户有temporary 表的create 权限。

4、使用mysql 自带的语句构建批量更新

mysql 实现批量 可以用点小技巧来实现:

  1. UPDATE yoiurtable
  2.     SET dingdan = CASE id 
  3.         WHEN 1 THEN 3 
  4.         WHEN 2 THEN 4 
  5.         WHEN 3 THEN 5 
  6.     END
  7. WHERE id IN (1,2,3)

这句sql 的意思是,更新dingdan 字段,如果id=1 则dingdan 的值为3,如果id=2 则dingdan 的值为4……
where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。

如果更新多个值的话,只需要稍加修改:

  1. UPDATE categories 
  2.     SET dingdan = CASE id 
  3.         WHEN 1 THEN 3 
  4.         WHEN 2 THEN 4 
  5.         WHEN 3 THEN 5 
  6.     END, 
  7.     title = CASE id 
  8.         WHEN 1 THEN 'New Title 1'
  9.         WHEN 2 THEN 'New Title 2'
  10.         WHEN 3 THEN 'New Title 3'
  11.     END
  12. WHERE id IN (1,2,3)

到这里,已经完成一条mysql语句更新多条记录了。

总结:

更新 100000条数据的性能就测试结果来看,测试当时使用replace into性能较好。

replace into  和 insert into on duplicate key update的不同在于:

  • replace into 操作本质是对重复的记录先delete 后insert,如果更新的字段不全会将缺失的字段置为缺省值,用这个要悠着点否则不小心清空大量数据可不是闹着玩的。
  • insert into 则是只update重复记录,不会改变其它字段。

来源地址:https://blog.csdn.net/m0_46796409/article/details/129354878

您可能感兴趣的文档:

--结束END--

本文标题: mysql批量更新update

本文链接: https://www.lsjlt.com/news/386287.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql批量更新update
    引言:mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,这样性能很差,也很容易造成阻塞,例如几百条或几千条数据需要同时更新,一条条更新就会很慢了,下面介绍mysql 批量更新的以下四种办法 1、replace i...
    99+
    2023-08-31
    mysql 数据库
  • Mysql中怎么实现Update批量更新
    Mysql中怎么实现Update批量更新,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通常情况下,我们会使用以下SQL语句来更新字段值:UPD...
    99+
    2024-04-02
  • MySQL如何批量更新死锁
    这篇“MySQL如何批量更新死锁”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL如何批量更新死锁”文章吧。表结构如下...
    99+
    2023-07-06
  • 怎么使用update批量更新同一列不同值
    使用UPDATE语句批量更新同一列不同值,可以使用CASE语句来实现。例如,假设有一个名为"users"的表,其中包含"userna...
    99+
    2023-09-05
    update
  • mybatis执行update批量更新时报错怎么解决
    今天小编给大家分享一下mybatis执行update批量更新时报错怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-06-29
  • 大批量数据分批批量插入或更新(Mybatis+MySQL)
    大批量数据分批批量插入或更新 在MySQL数据库的前提下,插入或更新大批量数据。首先批量插入需要考虑到以下几个因素: 数据库一次可以承受多大或者多少条数据的插入批量插入是否会占用Mysql资源太久,影响系统整体使用性能代码中的集合是否会造成...
    99+
    2023-08-30
    mybatis mysql 数据库 java spring boot
  • Mybatis的update更新批量与普通解决方式对比
    目录需求前提:1.第一种:应该是效率最低的更新2.通过批量更新xml改造注意事项:使用set导致逗号出现的问题< trim>节点标签解读:需求前提: 通过其他库里面查询出...
    99+
    2024-04-02
  • mybatis执行update批量更新时报错的解决方案
    目录执行update批量更新时报错在使用Mybatis 批量更新时定义Mapper  Dao接口中定义最后在service中调用同时执行多条sql的办法执行upd...
    99+
    2024-04-02
  • MySQL批量更新的四种方法
    最近做一个需求,更新3w条数据,一个一个update去更新的,结果花了80分钟,这样性能上很差,也容易阻塞,所以就找了一些MySQL批量更新的方式,在此记录一下 方法一;replace into 这种更新会将其它字段更新为默认值,因为...
    99+
    2023-08-31
    mysql 数据库 mybatis
  • MyBatis批量更新(updateBatch)
    更新多条数据,每条数据都不一样 通常有两种解决方法: 1) 在业务代码中循环遍历逐条更新。 2) 一次性更新所有数据(更准确的说是一条sql语句来更新所有数据,逐条更新的操作放到数据库端,在业务代码端展现的就是一次性更新所有数据)。 逐条更...
    99+
    2023-08-17
    mybatis java mysql
  • mysql怎么批量更新千万数据
    批量更新千万条数据可以使用MySQL的UPDATE语句结合WHERE子句来实现。下面是一个示例: UPDATE 表名 SET...
    99+
    2023-10-24
    mysql
  • 实操MySQL+PostgreSQL批量插入更新insertOrUpdate
    目录一、百度百科1、MySQL2、PostgreSQL3、PostgreSQL相对于MySQL的优势二、postgres中insertOrUpdate代码实例1、创建user表2、简...
    99+
    2024-04-02
  • MySQL如何实现数据批量更新
    最近需要批量更新大量数据,习惯了写sql,所以还是用sql来实现,下面这篇文章主要给大家总结介绍了关于MySQL批量更新的方式,需要的朋友可以参考下 根据不同条件批量更新同一值 这种场景直接通过update语句更新即可,如: 1 UP...
    99+
    2023-10-20
    mysql 数据库
  • MySQL怎么批量更新多条数据
    要批量更新多条数据,可以使用MySQL的UPDATE语句结合CASE语句来实现。以下是一个示例: 假设有一个名为students的表...
    99+
    2024-04-17
    MySQL
  • MySQL 更新数据 不同条件(批量)更新不同值
    一般在更新时会遇到以下场景:1.全部更新;2.根据条件更新字段中的某部分内容;3.根据不同的条件更新不同的值,以下是几种场景中常用的update方法。 一、方法分类 二、具体用法 (1)根据条件更新...
    99+
    2023-09-01
    mysql 数据库 sql
  • mybatis-plus的批量新增/批量更新以及问题
    目录 1.代码中foreach insert/update2.多线程foreach insert/update3.mybatis xml中foreach4.myb...
    99+
    2023-05-15
    mybatis-plus的批量新增和更新及问题 mybatis-plus的批量新增 mybatis-plus的/批量更新
  • MySQL批量更新的四种方式总结
    目录直接update的弊端方法一;replace into方法二:insert into [table] values… on duplicate key update方法三:创建临时表总结直接update...
    99+
    2023-01-12
    mysql批量更新sql语句 批量更新的sql语句 mysql批量新增或更新
  • MySQL中批量更新的方法是什么
    在MySQL中,可以使用以下方法来进行批量更新数据: 使用UPDATE语句和IN子句:可以通过使用UPDATE语句和IN子句来更新...
    99+
    2024-04-18
    MySQL
  • Mybatis批量操作sql写法示例(批量新增、更新)
    在使用foreach时,collection属性值的三种情况: 如果传入的参数类型为List时,collection的默认属性值为list,同样可以使用@Param注解自定义keyN...
    99+
    2024-04-02
  • Vue如何批量更新dom
    这篇文章将为大家详细讲解有关Vue如何批量更新dom,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。场景介绍在一个SFC(single file component,单文件组件)中,我们经常会写这样的逻辑:...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作