首先说结论:在条件字段都使用索引的情况下,批量更新的效率优于单条更新

注:

此结论没有考虑更新数据量的临界值,即没有考虑两种更新在达到哪个数据量级别的时候,会有明显的差异

我们项目中几百条数据以上的同时更新的话,使用了批量更新

我们知道mysql5.5 以后 默认使用的innodb,innodb是行级锁

优缺点对比:

批量更新:

优点:是速度快
缺点:当where条件字段,没有索引的情况下,可能会导致表锁,并且当字段的数据重复度过高的时候,也可能引发表锁

比如,更新where条件为性别,只有男女两种情况,当高并发情况出现的时候,就可能出现表锁,原因是mysql在解析sql 的时候,会忽略索引,因为它的mysql的优化器发现,即使使用了索引,还是要做全表扫描,所以放弃了索引,也就没有使用行锁,却使用了表锁

单条更新:
优点: 稳定,保证数据准确,并发量高
缺点: 速度慢

主键索引
也被称为聚簇索引,叶子节点存放的是整行数据; 而非主键索引被称为二级索引,叶子节点存放的是主键的值.
如果根据主键查询, 只需要搜索ID这颗B+树
而如果通过非主键索引查询, 需要先搜索k索引树, 找到对应的主键, 然后再到ID索引树搜索一次, 这个过程叫做回表.
也就是说, 非主键索引的查询需要多扫描一颗索引树, 效率相对更低.

mysql 批量更新和单条更新(循环)相关推荐

  1. mysql循环更新数据_大批量更新数据mysql批量更新的四种方法

    mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞. mysql 批量更新共有以下四种办法 1..replace i ...

  2. mysql 批量更新

    mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 复制代码代码如下: UPDATE mytable SET myfield = 'value' WHERE other_field = ' ...

  3. mysql批量条件字段_mysql批量更新多条记录的同一个字段为不同值的方法

    首先mysql更新数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 也可以这 ...

  4. Mysql批量更新的三种方式

    前言 批量插入由于mysql的VALUES原生支持,使用较为便利. 批量更新的写法一般有三种,在更新数量较少的情况下,前两种性能不相上下.但是在更新字段增加,更新条数较多(500以上)建议使用第三种写 ...

  5. mysql批量更新报错_Mysql批量更新的三种方式

    前言 批量插入由于mysql的VALUES原生支持,使用较为便利. 批量更新的写法一般有三种,在更新数量较少的情况下,前两种性能不相上下.但是在更新字段增加,更新条数较多(500以上)建议使用第三种写 ...

  6. mysql批量插入跟更新_Mysql批量插入和更新的性能-问答-阿里云开发者社区-阿里云...

    利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...

  7. mysql 批量更新数据 备份_mysql 批量更新与批量更新多条记录的不同值实现方法...

    批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...

  8. Mysql批量插入更新性能优化

    Mysql批量插入更新性能优化 对于数据量较大的插入和更新,因io/cpu等性能瓶颈,会产生大量的时间消耗,目前主流的优化主要包括预编译.单条sql插入多条数据.事务插入等,下面详细介绍一下: 单条插 ...

  9. mysql批量插入跟更新_Mysql批量插入和更新的性能

    利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...

最新文章

  1. SQL语言之组函数(Oracle)
  2. C语言试题三十八之将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。
  3. Git中的bash与CMD的区别
  4. teamlab与redmine试用对比报告
  5. 安卓按钮设置背景颜色不管用_MIUI10新功能:时钟背景黑白自选、公交卡自定义时段唤起...
  6. Hammer.js分析(三)——input.js
  7. 第四次scrum冲刺
  8. Android签名机制:生成keystore、签名、查看签名信息
  9. 华为机试HJ17:坐标移动
  10. 极目智能完成2亿元C1轮融资,已获多个乘用车ADAS项目定点
  11. 操作系统引论和进程管理部分习题
  12. 用两天整理出来的python英文单词大全,需要的赶快保存啦
  13. linux san网络,教你如何DIY SAN存储网络
  14. 微信早安定时推送 简单方法教程(windows通用)
  15. 【最小费用最大流】知识点讲解
  16. Linux usleep不准问题排查
  17. Thread.setDaemon详解
  18. DWZ表单验证规则一览表
  19. 多言统计及R语言建模按组距为300编制频数表,计算频数,频率和累积频率表,并绘制直方图
  20. python 网页视频下载工具 you-get 安装及使用

热门文章

  1. 常见厂家贴片电容电感电阻命名规则
  2. python 嵩天 笔记,【笔记】嵩天-Python语言程序设计-完成两个简单实例
  3. 【调制识别】基于高阶累积量的调制方式识别算法matlab仿真,课题识别BPSK, QPSK, 16QAM, 64QAM
  4. 课程设计——基于JAVA的仓库管理系统
  5. 【通关MySQL】Win11如何将MySQL卸载干净?
  6. JavaScript(红宝书)(二)
  7. 应用随机过程笔记(一):随机过程的定义
  8. yii2 gii生成curd
  9. Web程序设计项目【附源码】
  10. 浏览器新建标签页被篡改