当前位置:   article > 正文

由事务扩展开谈一谈_事务特性扩展

事务特性扩展

事务的四个特性

ACID

  • 原子性:事务中的操作要么全部成功,要么全部失败。通过 undo log 实现
  • 一致性:数据库在事务执行前后都处于一个正确的状态。
  • 隔离性:事务执行过程中,不应该收到其他事务的打扰,并发的事务要隔离。通过锁、MVCC实现
  • 持久性:事务执行完成之后,数据将永远保存在数据库中,即使出现意外宕机的情况,也不应该对这部分数据造成任何影响。通过 redo log 实现

事务的四个隔离级别

  • 读取未提交:事务的修改,即使没有提交,对其他事务也都是可见的。这种现象叫脏读。
  • 读取已提交:事务读取已提交的数据,大多数数据库的默认隔离级别。当一个事务在执行过程中,前后读取的信息不一样,这种情况称为不可重复读。
  • 可重复读:mysql 的默认隔离级别。它解决了脏读、不可重复读问题、存在幻读问题。幻读:当一个事务A读取某一个范围的数据时,另一个事务B在这个范围插入行,A事务再次读取这个范围的数据时,会产生幻读。
  • 可串行化:所有事务依次逐个执行,互相之间没有干扰。

redo log & bin log

数据是存放在磁盘中的,如果每次读写数据都需做磁盘IO操作,并发场景下性能就会很差。为此 Mysql 引入缓存 Buffer Pool 来缓解数据库的磁盘压力。

当从数据库读数据时,首先从缓存中读取,如果缓存中没有,则从磁盘读取后放入缓存;当向数据库写入数据时,先向缓存写入&#

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/123394
推荐阅读
相关标签
  

闽ICP备14008679号