MySQL中,当update修改数据与原数据相同时会再次执行吗?
2023-03-14 22:20:17 时间
一、背景
本文主要测试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)“这个操作,该加锁的加锁,该更新的更新。
相关文章
- 你知道 Web3 吗?
- LeetCode 1819. 序列中不同最大公约数的数目(数论)
- 在 macOS上安装 MongoDB 社区版
- 异构数据存储实战
- 在 iOS 16 中用 SwiftUI Charts 创建一个折线图
- 京东618广告精排百分位AUC提升技术方案
- 抖音支付十万级 TPS 流量发券实践
- 交易黄金链路阿波罗移动端异常监控系统
- 一些我们关于端到端语音翻译的思考和尝试
- 同时使用 Ant Design of React 中 Mention 和 Form
- 支持10X增长,携程机票订单库Sharding实践
- 智能问答:基于 BERT 的语义模型
- hdu5514-Frogs(容斥原理)好题
- 【组队训练】2015 EC Final
- 【组队训练】2013长沙区域赛
- iOS 15关闭个性化广告,对App Store搜索广告无影响
- ACM 杰出会员姬水旺:量子化学和物理的深度学习
- Flutter在携程复杂业务的高性能之旅
- 微信全文搜索技术优化
- 建立测试模型