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

【mysql的当前读和快照读】

在MySQL中,尤其是InnoDB存储引擎中,读操作主要分为两种:当前读(Current Read)快照读(Snapshot Read)

  • 当前读
    当前读每次读取的都是当前最新的数据。这种读操作在读取数据时不允许其他事务对这些数据进行写操作,反之亦然,写操作时也不允许读操作。通常用于修改数据或加锁读取的操作,如UPDATE、INSERT、DELETE等。
select * from table where ... LOCK IN SHARE MODE;
select * from table where ... FOR UPDATE;
insert into tavble ...;
delete from table where ...;
update table ...;
  • 快照读
    快照读每次读取的是某个时间点的快照数据。一条数据正在被另一个事务修改,快照读也可以进行,保证读写不冲突。常用于查询数据的操作,如SELECT等。
select * from table where ...

mysql只有REPEATABLE READ(可重复读)和READ COMMITTED(读已提交)隔离级别才会使用快照度

不同的隔离级别下,快照读的行为也有所不同。

  • 在REPEATABLE READ(可重复读)隔离级别下(MySQL默认隔离级别),一个事务内多次快照读同一条记录,会得到第一次查询时的快照数据, 当然中间不能发生当前读, 否则会刷新快照。
  • 在READ COMMITTED(读已提交)隔离级别下,一个事务内多次快照读同一条记录,会得到最新提交的快照数据。
http://www.lryc.cn/news/484815.html

相关文章:

  • [CKS] Audit Log Policy
  • 【Linux】-学习笔记03
  • Leetcode热题100-32 最长有效括号
  • 【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
  • A027-基于Spring Boot的农事管理系统
  • Redisson的可重入锁
  • SQL Server Service Broker完整示例
  • CentOS7 升级OpenSSH9.0全过程和坑
  • RSTP的配置
  • 力扣257:二叉树的所有路径
  • Tcl 和 Python 在二次开发研究
  • 【NLP优化】Ubuntu 20.04 下 源码安装 CasADi + Ipopt / acados
  • [241110] 微软发布多智能体系统Magentic-One | 社区讨论:Ubuntu 26.04 LTS 发布前移除 Qt 5
  • AI风向标|算力与通信的完美融合,SRM6690解锁端侧AI的智能密码
  • MySQL查询执行(六):join查询
  • python习题练习
  • MySQL高级(二):一条更新语句是如何执行的
  • 在 Ubuntu 18.04 中搭建和测试 DNS 服务器
  • 算法学习第一弹——C++基础
  • javaWeb小白项目--学生宿舍管理系统
  • 如何优化Elasticsearch的查询性能?
  • 蓝桥杯每日真题 - 第12天
  • 从H264视频中获取宽、高、帧率、比特率等属性信息
  • Cyberchef配合Wireshark提取并解析TCP/FTP流量数据包中的文件
  • Nginx中使用keepalive实现保持上游长连接实现提高吞吐量示例与测试
  • 深度学习-卷积神经网络CNN
  • 241114.学习日志——[CSDIY] [Cpp]零基础速成 [03]
  • 大模型研究报告 | 2024年中国金融大模型产业发展洞察报告|附34页PDF文件下载
  • 数据库SQL——什么是实体-联系模型(E-R模型)?
  • 在 MySQL 8.0 中,SSL 解密失败,在使用 SSL 加密连接时出现了问题