专栏首页Java编程指南MySQL中,当update修改数据与原数据相同时会再次执行吗?

MySQL中,当update修改数据与原数据相同时会再次执行吗?

来源:https://yq.aliyun.com/articles/694162

一、背景

本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗?

二、测试环境

MySQL5.7.25 Centos 7.4

三、binlog_format为ROW

1、参数

2、测试步骤

session1

session2

session1

3、总结

在binlog_format=row和binlog_row_image=FULL时,由于MySQL 需要在 binlog 里面记录所有的字段,所以在读数据的时候就会把所有数据都读出来,那么重复数据的update不会执行。即MySQL 调用了 InnoDB 引擎提供的“修改为 (1,55)”这个接口,但是引擎发现值与原来相同,不更新,直接返回。

四、binlog_format为STATEMENT

1、参数

2、测试步骤

session1

session2

session1

3、总结

在binlog_format=statement和binlog_row_image=FULL时,InnoDB内部认真执行了update语句,即“把这个值修改成 (1,999)“这个操作,该加锁的加锁,该更新的更新。

本文分享自微信公众号 - Java编程指南(JavaXxzyfx),作者:Shine

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一遍记住Java常用的八种排序算法与代码实现

    (如果每次比较都交换,那么就是交换排序;如果每次比较完一个循环再交换,就是简单选择排序。)

    Java编程指南
  • 为什么要使用redis数据库?它有哪些妙用?

    redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括stri...

    Java编程指南
  • 谈谈mysql的悲观和乐观锁 - 周伯通的麦田 - 博客园

    悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。之前有写过一篇文章关于并发的处理思路和解决方案,这里我单独将对这两种常见的锁机制...

    Java编程指南
  • MySQL 中 update 修改数据与原数据相同时会再次执行吗?

    JiekeXu之路
  • MySQL 中 update 修改数据与原数据相同会再次执行吗?

    良月柒
  • MySQL 中 update 修改数据与原数据相同会再次执行吗?

    本文原发于 同名微信公众号「程序员的成长之路」,回复「1024」你懂得,给个赞呗。

    良月柒
  • MySQL 数据库的高可用性分析

    MySQL 数据库是目前开源应用最大的关系型数据库,有海量的应用将数据存储在 MySQL 数据库中。存储数据的安全性和可靠性是生产数据库的关注重点。本文分析了目...

    腾讯云数据库团队
  • QPS从0到4000请求每秒,谈达达后台架构演化之路

    达达是全国领先的最后三公里物流配送平台。 达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社会闲散人力资源,解决O2O最后三公里即时性配送难题(目前达达...

    范蠡
  • 鹅厂资深DBA是怎么做数据梳理的?

    契机 最近到了新的部门任职,开展工作的时候,由于对数据库相关的工作非常熟悉,因此切入点就选择了先从数据库开始,在短短2周的时间里,让线上DB的成本下降80%...

    腾讯云数据库 TencentDB
  • 树链剖分简单分析及模板(杂谈)

    这几天学习了一下树链剖分,顺便写一下我的理解、 早上看了一下别人的讲解,云里雾里,终于算是搞懂了、 树链剖分是解决在树上进行插点问线,插线问点等一系列树上的问题...

    Angel_Kitty

扫码关注云+社区

领取腾讯云代金券