事务的基础知识及事务日志

1. 存储引擎支持情况

SHOW ENGINES 命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。
MySQL 中,只有 InnoDB 是支持事务的。
2 基本概念
事务: 一组逻辑操作单元,使数据从一种状态变换到另一种状态。
事务处理的原则: 保证所有事务都作为 一个工作单元 来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交( commit ) ,那么这些修改就 永久 地保存下来;要么数据库管理系统将 放弃 所作的所有 修改 ,整个事务回滚 ( rollback ) 到最初状态。
3 事务的 ACID 特性
原子性( atomicity ): 原子性是指事务是一个不可分割的工作单位,要么全部提交,要么全部失败回滚。
一致性( consistency ): 一致性是指事务执行前后,数据从一个 合法性状态 变换到另外一个 合法性状态
隔离型( isolation ): 事务的隔离性是指一个事务的执行 不能被其他事务干扰 ,即一个事务内部的操作及使用的数据对 并发 的 其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性( durability ): 持久性是指一个事务一旦被提交,它对数据库中数据的改变就是 永久性的 ,接下来的其他操作和数据库故障不应该对其有任何影响。
4 如何使用事务
使用事务有两种方式,分别为 显式事务 隐式事务
4.1 显式事务
  START TRANSACTION 或者 BEGIN ,作用是显式开启一个事务。
4.2 隐式事务
数据定义语言( Data definition language ,缩写为: DDL
隐式使用或修改 mysql 数据库中的表
事务控制或关于锁定的语句
加载数据的语句
关于 MySQL 复制的一些语句
其它的一些语句
 
5.事务日志
5.1 REDO日志
1. 好处
redo 日志降低了刷盘频率
redo 日志占用的空间非常小
2. 特点
redo 日志是顺序写入磁盘的
事务执行过程中, redo log 不断记录
 
5.2 Undo日志
redo log 是事务持久性的保证, undo log 是事务原子性的保证。在事务中 更新数据 前置操作 其实是要先写入一个 undo log
事务需要保证 原子性 ,也就是事务中的操作要么全部完成,要么什么也不做。但有时候事务执行到一半 会出现一些情况,比如:
情况一:事务执行过程中可能遇到各种错误,比如 服务器本身的错误 操作系统错误 ,甚至是突
断电 导致的错误。
情况二:程序员可以在事务执行过程中手动输入 ROLLBACK 语句结束当前事务的执行。
以上情况出现,我们需要把数据改回原先的样子,这个过程称之为 回滚 ,这样就可以造成一个假象:这 个事务看起来什么都没做,所以符合 原子性 要求。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值