栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL事务,锁,MVCC

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL事务,锁,MVCC

文章目录
  • 事务
    • 事务的四大特性
      • 原子性
      • 持久性
  • 总结


事务

事务的目的就是为了保证数据的最终一致性


事务的四大特性

ACID:

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)
原子性

当前事务的操作要么全部成功,要么全部失败。原子性由undo log日志来保证,因为undo log记载着数据修改前的信息
(比如:我们要insert一条数据,则undo log中会记录一条delete日志。我们要update一条记录,则log中记录之前的旧值的update记录)


### 一致性 通过原子性,隔离性,持久性,来达到事务的一致性,保证事务的一致性需要程序代码来保证

一致性是事务的目的,需要通过程序来达到


### 隔离性 在并发事务执行的情况下,多个事务的内部操作不互相干扰。如果多个事务同时操作一个数据,可能会产生**脏读,不可重复度,幻读**等问题。 所以需要事务之间存在一定的隔离级别。 - read uncommit - read commit - repeatable read - serializable
持久性

表示事务一旦提交,其对数据库的改变应该是永久性的(会将数据持久化到硬盘中)

持久性通过redo log日志来实现,当我们需要修改数据的时候,mysql是先把这条数据所在的页找到,然后把该页加载到内存中,将对应记录进行修改

如果在内存中修改完成后,mysql宕机,通过redo log日志记录在该页中修改的记录

redo log是顺序写的,写入速度很快,并且记录的是物理修改(xxx页做了xx修改),文件的体积很小,恢复速度快

一旦提交事务,数据是永久记录的,mysql底层使用的是redo log来持久化数据


总结
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号