Mysql 事务

一 概念

一组sql语句组成的数据库逻辑处理单位,这组操作要么一起成功,要么一起失败。

二 事务的原则

1 ACID原则

  • 原子性(Atomicity)
    事务是最小的执行单位,是不可分割的。
    原子性是指对数据的修改要么全部成功,要么全部失败。

  • 一致性(Consistency)
    在事务操作前后,事务状态保持一致,也可理解为数据一致。

  • 隔离性(Ioslation):
    是指并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务数据库是独立的。

  • 持久性(Durability):
    是指事务提交后, 把事务的状态会被持久化到数据库中,也就是事务的提交, 对数据的新增、更新将会持久到数据库中。

三 ACID的原理

原理:基于日志的undo/redo机制

  • 原子性 :基于undo log
  • 持久性 : 基于redo log
  • 隔离性 :锁机制,Mvcc, undo log的版本链, readView
  • 一致性:事务追求的最终目标,一致性的实现需要数据库层面的保障,也需要应用层面的保障。
四 事务的隔离级别

1 多个事务同时进行会怎么样?

  • 脏读
    A事务读到了B事务未提交的内容,而后B事务进行了回滚。

  • 不可重复读
    A事务读取了B事务已提交的部分,造成了A事务两次读取的结果不一样,因为此期间B事务进行了提交操作。

  • 幻读
    A事务读取了一个范围的内容, 而B事务在此期间新插入的一条数据,导致了“幻读”。

2 事务的隔离级别有哪些?

  • 未提交读
  • 已提交读
  • 可重复读
  • 串行化

3 Innodb使用了哪种隔离级别?

Innodb默认使用的是可重复读隔离级别。

4 设置隔离级别的语句

set global transaction isolation level read uncommitted.
这里的global 也可以换成session
global表示全局的, 而session表示当前会话,也就是当前窗口有效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值