当前位置: 首页 > news >正文

【mysql】什么是当前读

目录

          • 1. 说明
          • 2. 常见情况
            • 2.1 select ... for update
            • 2.2 select ... lock in share mode
            • 2.3 update
            • 2.4 delete
            • 2.5 insert

1. 说明
  • 1.在mysql中,当前读(Current Read)是一种读取操作,不仅读取数据,还会对数据加上适当的锁,来保证数据的一致性和事务的隔离性。
  • 2.当前读通常涉及到的是读取到的最新数据,并且可能对数据加锁以防止其他事务对数据进行修改。
  • 3.当前读操作通常在InnoDB存储引擎中使用,与事务的隔离级别(Isolation Levels)密切相关。
  • 4.不同的隔离级别(如READ COMMITTED、REPEATABLE READ、SERIALIZABLE)会对当前读的行为有不同的影响。
  • 5.在SERIALIZABLE隔离级别下,所有读取操作都会变成当前读,而不仅仅是那些显式加上锁的读取操作。
  • 6.当前读是一种带有锁机制的读取操作,旨在确保读取的数据一致性并防止其他事务对这些数据进行并发修改。
2. 常见情况
2.1 select … for update
  • 1.这种查询会对读取的行加上排他锁(Exclusive Lock),以防止其他事务对这些行进行更新或删除操作。
  • 2.sql示例:
select * from student where name = '张三' for update;
2.2 select … lock in share mode
  • 1.这种查询会对读取的行上加上共享锁(Shared Lock),以防止其他事务对这些行为进行更新或删除操作,但允许其他事务读取这些行。
  • 2.sql示例:
select * from student where name = '张三' lock in share mode;
2.3 update
  • 1.更新操作会对涉及的数据行加上排他锁,以确保数据一致性。
  • 2.sql示例:
update student set name = '李四' where name = '张三';
2.4 delete
  • 1.删除操作会对涉及的数据行加上排他锁,以确保数据一致性。
  • 2.sql示例:
delete from student where name = '张三';
2.5 insert
  • 1.插入操作在某些情况下也可能涉及到当前读,比如通过触发器(Triggers)或其他复杂的插入逻辑,不过一般来说,插入操作更多的是修改表的数据结构而不是读取已有数据。

http://www.mrgr.cn/news/59966.html

相关文章:

  • 维乐Senso Edge坐垫,自然并不远,向往就前往
  • WebSocket简单使用
  • 【Ubuntu更换镜像源】
  • Depcheck——专门用于检测 JavaScript 和 Node.js 项目中未使用依赖项的工具
  • MyBatis 源码分析 - SQL执行过程(三)之 ResultSetHandler
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day6
  • JMeter 接口和性能测试常用函数最全解析!
  • ICP之点云特征计算
  • 只需要写几行 SQL,这个网站就搭好了?
  • shell脚本每日一练4
  • GitHub 上传项目保姆级教程
  • 【C++单调栈 贡献法】907. 子数组的最小值之和|1975
  • python基于django线上视频学习系统设计与实现_j0189d4x
  • 【Linux系统编程】——Linux入门指南:从零开始掌握操作系统的核心(指令篇)
  • 基于SpringBoot的中药材进存销管理系统设计与实现
  • 在浏览器中运行 Puppeteer:解锁新能力
  • React 中组件通信的几种主要方式
  • Python实现摇号系统
  • 还没想好说什么
  • Linux:指令再认识
  • 【在WindoWs 10 cmd查询管理目录下所有文件及其相对位置】
  • C语言基础题(大合集2)
  • 重学SpringBoot3-Spring WebFlux之SSE服务器发送事件
  • Rust中常用的命令工具
  • 存储期类别
  • Autosar 启动过程-基于ETAS工具