Mysql数据库-----不玩情景模拟,直击Mysql事务

- Mysql事务概念

:数据库的事物是指一组sql语句注册的数据库逻辑处理单元

- 特点(ACID):

原子性(Atomicity):在事物的sql操作中,对数据的修改要么全部执行成功,要么全部执行失 败,它是基于日志的Redo/Undo机制。;
一致性(Consistent):一致性是指执行事物前后的数据库的状态要一致,可以理解为数据一致性(个人理解是数据结构不变,表结构变);
隔离性(Isalotion): 指事物的独立性,多个事物相互隔离,在并行状态下每个事务都有自己的完整数据空间,事务对数据进行更新时,要么数据的状态是另一个事务处理前的状态、要么是处理侯的状态,这个与事物设置的隔离级别有关;
持久性(Durable):指事物提交后,这个事物的状态(对数据的新增、更新)会被持久化到数据库中;
四个特点之间的关系:原子性、隔离性和持久性都是为了保障一致性而存在的,一致性为前者的最终目的。

- ACID的原理

  • 通过预先写入日志保证: 原子性和持久性
  • 原子性基于Redo/Undo机制:将所有数据的更新操作都写入日志;
  • Undo log: 记录数据更新前的值;
  • Redo log:记录数据块被修改后的值。
  • 基于此特性:若数据库执行异常,可通过日志的方式,回滚数据,实现事务的一致性
  • 而锁(locking)保证隔离性

- 一致性的事务隔离级别:

  • 读未提交(READ UNCOMMITTED):此级别有产生脏读(读取到另一个事务未提交的数据)的隐患,一般是针对update的操作有此隐患;
  • 读提交 (READ COMMITTED):意如其名,读取已经提交的内容;
  • 可重复读 (REPEATABLE READ):解决了不可重复读脏读的问题,但是有幻读(由于非线程安全,可以读取到后面插入的内容)的隐患,幻读隐患主要是针对insert操作;
  • 串行化 (SERIALIZABLE):把事务的执行过程变为顺序执行。。
  • :四个等级从上至下,隔离等级越来越高,但是由于的原因,性能越来越差
  • 锁分类:分享锁/读锁(Shared Locks)、排他锁/写锁(Exclusive Locks) 、间隙锁行锁(Record Locks)、表锁;

在这里插入图片描述
参考网址: Hive事务深度详解

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值