当前位置:首页 > 日记 > 正文

MySQL批量更新和批量更新的不同值实现方法

MySQL批量更新和批量更新的不同值实现方法
批量更新

MySQL更新语句对更新数据字段很简单,通常是这样编写的。

复制代码代码如下所示:
更新表设置这个行业'value'where other_field 'other_value= =;
如果相同的字段被更新为相同的值,MySQL也非常简单,修改的地方:

复制代码代码如下所示:
更新表设置这个行业= 'value'where other_field在('other_values);
注意这里的other_values '是一个逗号(,)分隔的字符串,如1,2,3

如果为不同的值更新了一些数据,那么很多人都会写这个:

复制代码代码如下所示:
foreach(display_order美元美元美元ID序号){
为SQL =更新目录设置display_order = $序号id是$id;
mysql_query($ SQL);
}
它是一个循环的更新记录。一个记录是更新,性能不好,很容易引起阻塞。

那么,是否可以使用SQL语句进行批处理更新呢MySQL没有提供直接的方法来实现批处理更新,但它可以用一点技巧来完成。

复制代码代码如下所示:
更新表
设置这个行业=事件ID
当1 then'value
当2 then'value
当3 then'value
结束
在ID(1,2,3)
这是一个用于实现批量更新的小技术。
例如 uff1a

复制代码代码如下所示:
更新:
集display_order =事件ID
1岁到3岁
2岁到4岁
3岁到5岁
结束
在ID(1,2,3)
这个SQL的意思是更新display_order场。如果ID = 1,display_order的值是3,如果id = 2,那么display_order值是4,如果是display_order ID = 3,该值为5。
也就是说,要一起编写条件语句。
此处的位置不影响代码的执行,但它将提高SQL执行的效率。确保SQL语句只执行需要修改的行数,这里只更新3个数据,WHERE子句确保只执行3行数据。

如果更新了多个值,只需要稍加修改即可。

复制代码代码如下所示:
更新:
集display_order =事件ID
1岁到3岁
2岁到4岁
3岁到5岁
结束,
标题=案例ID
当1 then'new标题1
当2 then'new标题2
当3 then'new标题3
结束
在ID(1,2,3)
在这里,MySQL语句已经完成,以更新多个记录。
但是要在业务中使用它,您需要结合服务器端语言。这里,以PHP为例来构建这个MySQL语句:

复制代码代码如下所示:
display_order美元=阵列(
1=4,
2=1,
3=2,
4=3,
5=9,
6=5,
7=8,
8 = 9
);
ID =崩溃美元(',',array_keys($ display_order));
为SQL =更新目录设置display_order =事件ID;
foreach(display_order美元美元美元ID序号){
为SQL = sprintf(当%d %d美元后,美元的ID,序);
}
在id($ id);
sql $;
在这个例子中,有8条记录要更新。代码很容易理解,你学过吗

性能分析

当我用成千上万的记录更新MySQL时,我发现使用最原始的批量更新显示性能不佳。在线总结有三种方法。

1。批量更新,一次记录更新,性能不佳

复制代码代码如下所示:
更新test_tbl集博士、'2'where ID = 1;
2.replace或插入…关于重复密钥更新

复制代码代码如下所示:
替换成test_tbl(ID,DR)的值(1,2'),(2,3'),…(X,Y);
或使用

复制代码代码如下所示:
插入test_tbl(ID,DR)的值(1,2'),(2,3'),…(X,Y)重复;
三.创建一个临时表,首先更新临时表,然后从临时表更新

代码遵循复制代码如下所示
创建临时表(ID int(4)主键,varchar博士(50));
插入TMP值(0,离开了),(1,'xx),…(m,'yy);
更新test_tbl,TMP组test_tbl。博士= tmp.dr test_tbl ID = tmp.id那里;

注意:此方法要求用户具有临时表的创建权限。

以下是上述方法更新100000数据的性能测试结果。

一次一次更新

真正的0m15.557s
用户0m1.684s
Sys 0m1.372s

替换
真正的0m1.394s
用户0m0.060s
系统0m0.012s

插入到重复密钥更新中
真正的0m1.474s
用户0m0.052s
系统0m0.008s

创建临时表和更新:
真正的0m0.643s
用户0m0.064s
系统0m0.004s

就测试结果而言,当时的替代性能更好。

复制密钥更新中的替换和插入之间的区别是:
在删除之前,替换操作本质上是一个重复记录的插入,如果更新的字段不将丢失的字段设置为默认值。
插入是一个更新的重复记录,不改变其他字段。

相关文章

是aiepk2.exe过程安全程序什么是过

是aiepk2.exe过程安全程序什么是过

过程,程序,电脑软件,exe,点评:aiepk2.exe是一个IE弹出拦截部分 进程文件:aiepk2或aiepk2.exe 过程名称:另一个IE弹出杀手 过程类别:安全风险的过程 英文描述: aiepk2.exe是另一个IE弹出杀手级产品的一部分,杀手,它也被称为后。 中文参考: aiepk2.…

一个tutorie扩展在window7操作系统

一个tutorie扩展在window7操作系统

图形,操作,扩展,系统分区,工具,点评:MBR分区表只支持4个主分区,有时需要分多个分区,所以它会涉及到系统的diskaprt命令扩展分区和逻辑分区的分区。 该系统安装在安装系统的过程中,硬盘分区我们得知MBR分区表最多只支持4个主分区后,有时需要将多…

快速清除所有超链接格式的方法

快速清除所有超链接格式的方法

清除,方法,超链接,快速,格式,现在很多网站的内容都有超链接,如果你读了你最喜欢的内容,你想把它复制到word文档,但是把它复制到Word中。您可以看到您也复制了Web内容中的超链接,那么如何快速清除Word中的所有超链接呢 事实上,有很多方法。 1,当我…

如何使win7系统默认的大图标小

如何使win7系统默认的大图标小

系统,图标,默认,电脑软件,点评:很多朋友刚接触win7不习惯win7系统默认的大图标。因为图标的面积太大,没有吸引力,我们如何使wn7桌面图标变小呢针对这个问题,本文推荐了三个很好的解决方案,希望能对您有所帮助。 近日,有网友反应小编辑,不使用Win7…

软件被彻底删除后如何恢复?恢复彻底

软件被彻底删除后如何恢复?恢复彻底

软件被彻底删除后如何恢复?恢复彻底删除的文件方法,文件,恢复,安装,扫描,搜索,怎么恢复,软件操作,速度,之前以为不会在使用这个软件了,电脑的空间不是特别的大,也见不得一些无用的东西出现在自己的电脑中,因此就直接把这个电脑给卸载掉了,而且在卸载的时…

如何拒绝陌生人在QQ聊天

如何拒绝陌生人在QQ聊天

聊天,陌生人,电脑软件,QQ,核心提示:A:你好B:打扰一下,你是谁我是XXX B:我不认识你。你是怎么进来的我已经和你做过了,忘了吗这是一个很典型的互联网聊天的开始… 你好,A: B:对不起,你是谁 我叫XXX。 B:我不认识你。你是怎么进来的 我已经和你做过了,忘…

利用QQ空间大地图模块的方法

利用QQ空间大地图模块的方法

模块,方法,空间,地图,电脑软件,事实上,我相信我的大多数朋友都知道QQ空间是如何用来添加大模块的,特别是对于那些在太空中有更多空间的朋友来说。 在前期的FD模块和flash模块中,大地图模块是QQ空间的主要装饰。 但随着FD模块的自动出现,大画面…

MySQL中浮点型传输字符问题的详细

MySQL中浮点型传输字符问题的详细

传输,浮点型,字符,解决方案,详细,前言 本文主要介绍mysql浮点数到字符类型时遇到的一个问题,并与大家分享,供大家参考学习。这里没有什么要说的。让我们详细介绍一下。 一个问题的描述 今天,我遇到了一个数据刷的需求,它是修改产品的重量(字…

如何在OfficeExcel中隐藏数值

如何在OfficeExcel中隐藏数值

数值,如何在,电脑软件,OfficeExcel,核心提示:1。隐藏行和列当表太大,当显示在屏幕上,你可以隐藏的行和列,隐藏的行(列)的具体步骤如下:(1)选择行(列)隐藏。(2)单击格式行(列)隐藏菜单命令,然后选定行(列… 1。隐藏行和列 当工作表太大不能在屏幕上显示时,可以…

SmartFTP是smartftp.exe-过程

SmartFTP是smartftp.exe-过程

过程,电脑软件,SmartFTP,smartftp,exe,综述:简要介绍了smartftp.exe - SmartFTP过程 进程文件:SmartFTP或者smartftp.exe 进程名称:SmartFTP 过程类别:安全风险的过程 英文描述: smartftp.exe是文件传输协议的工具,它允许定期和不定期的转移使…

如何进行固定在表的标题

如何进行固定在表的标题

标题,电脑软件,有时我们在Excel中计算数据时,我们希望保留标题的一些固定名称,然后向下滚动数据查看数据。我们希望修复上面的成绩单和名字,语言,数学和其他科目,然后滚动看到的名字和分数如下。具体操作如下: 首先,我们将鼠标定位到所需的固定窗…

scrtkfg是scrtkfg.exe-使用

scrtkfg是scrtkfg.exe-使用

电脑软件,scrtkfg,exe,评论:scrtkfg.exe - scrtkfg过程的详细解释 进程文件:scrtkfg或scrtkfg.exe 进程名称:win32.rbot木马变种 过程类别:安全风险的过程 英文描述: scrtkfg.exeis过程被注册为win32.rbot木马,这是通过。病毒通过电子邮件和互…