mysql 批量更新和单条更新(循环)
首先说结论:在条件字段都使用索引的情况下,批量更新的效率优于单条更新
注:
此结论没有考虑更新数据量的临界值,即没有考虑两种更新在达到哪个数据量级别的时候,会有明显的差异
我们项目中几百条数据以上的同时更新的话,使用了批量更新
我们知道mysql5.5 以后 默认使用的innodb,innodb是行级锁
优缺点对比:
批量更新:
优点:是速度快
缺点:当where条件字段,没有索引的情况下,可能会导致表锁,并且当字段的数据重复度过高的时候,也可能引发表锁
比如,更新where条件为性别,只有男女两种情况,当高并发情况出现的时候,就可能出现表锁,原因是mysql在解析sql 的时候,会忽略索引,因为它的mysql的优化器发现,即使使用了索引,还是要做全表扫描,所以放弃了索引,也就没有使用行锁,却使用了表锁
单条更新:
优点: 稳定,保证数据准确,并发量高
缺点: 速度慢
主键索引
也被称为聚簇索引,叶子节点存放的是整行数据; 而非主键索引被称为二级索引,叶子节点存放的是主键的值.
如果根据主键查询, 只需要搜索ID这颗B+树
而如果通过非主键索引查询, 需要先搜索k索引树, 找到对应的主键, 然后再到ID索引树搜索一次, 这个过程叫做回表.
也就是说, 非主键索引的查询需要多扫描一颗索引树, 效率相对更低.
mysql 批量更新和单条更新(循环)相关推荐
- mysql循环更新数据_大批量更新数据mysql批量更新的四种方法
mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞. mysql 批量更新共有以下四种办法 1..replace i ...
- mysql 批量更新
mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 复制代码代码如下: UPDATE mytable SET myfield = 'value' WHERE other_field = ' ...
- mysql批量条件字段_mysql批量更新多条记录的同一个字段为不同值的方法
首先mysql更新数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 也可以这 ...
- Mysql批量更新的三种方式
前言 批量插入由于mysql的VALUES原生支持,使用较为便利. 批量更新的写法一般有三种,在更新数量较少的情况下,前两种性能不相上下.但是在更新字段增加,更新条数较多(500以上)建议使用第三种写 ...
- mysql批量更新报错_Mysql批量更新的三种方式
前言 批量插入由于mysql的VALUES原生支持,使用较为便利. 批量更新的写法一般有三种,在更新数量较少的情况下,前两种性能不相上下.但是在更新字段增加,更新条数较多(500以上)建议使用第三种写 ...
- mysql批量插入跟更新_Mysql批量插入和更新的性能-问答-阿里云开发者社区-阿里云...
利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...
- mysql 批量更新数据 备份_mysql 批量更新与批量更新多条记录的不同值实现方法...
批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...
- Mysql批量插入更新性能优化
Mysql批量插入更新性能优化 对于数据量较大的插入和更新,因io/cpu等性能瓶颈,会产生大量的时间消耗,目前主流的优化主要包括预编译.单条sql插入多条数据.事务插入等,下面详细介绍一下: 单条插 ...
- mysql批量插入跟更新_Mysql批量插入和更新的性能
利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...
最新文章
- SQL语言之组函数(Oracle)
- C语言试题三十八之将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。
- Git中的bash与CMD的区别
- teamlab与redmine试用对比报告
- 安卓按钮设置背景颜色不管用_MIUI10新功能:时钟背景黑白自选、公交卡自定义时段唤起...
- Hammer.js分析(三)——input.js
- 第四次scrum冲刺
- Android签名机制:生成keystore、签名、查看签名信息
- 华为机试HJ17:坐标移动
- 极目智能完成2亿元C1轮融资,已获多个乘用车ADAS项目定点
- 操作系统引论和进程管理部分习题
- 用两天整理出来的python英文单词大全,需要的赶快保存啦
- linux san网络,教你如何DIY SAN存储网络
- 微信早安定时推送 简单方法教程(windows通用)
- 【最小费用最大流】知识点讲解
- Linux usleep不准问题排查
- Thread.setDaemon详解
- DWZ表单验证规则一览表
- 多言统计及R语言建模按组距为300编制频数表,计算频数,频率和累积频率表,并绘制直方图
- python 网页视频下载工具 you-get 安装及使用