OR博客
MySQL的事务
苗锦洲
创建于:2021-10-04 16:08:17
0
35
276
0
事务也是数据库系统区别于文件系统的重要特征之一。

事务也是数据库系统区别于文件系统的重要特征之一。

07 事务

1. 认识事务

1.1 概述

  • 在事务中的操作,要么全成功,要么全失败

  • ACID

    • A:原子性

      • 事务不可分割
    • C:一致性

      • 事务失败或成功后,数据库仍保持一致的状态
    • I:隔离性

      • 事务提交成功前,修改对其他事务不可见
      • 其他说法:并发控制、可串行化、锁
    • D:持久性

      • 事务一旦提交成功,结果将是永久的
      • 保证了数据库系统的高可靠

1.2 分类

  • 扁平事务
  • 带有保存点的扁平事务
  • 链事务
  • 嵌套事务
  • 分布式事务

2. 事务的实现

隔离性:锁

原子性、持久性:redo log,恢复事务提交修改的页
一致性:undo log,是逻辑日志,回滚行记录到某个特定的版本

2.1 redo

2.2 undo

  • 不是回滚到事务最开始的样子,不然可能影响其他事务
  • MVCC
  • undo log 会产生 redo log

2.3 purge

  • delete 和 update 可能并不直接生效,因为其他事务可能还在用被 delete 或 update 的数据

2.4 group commit

    1. 先将事务重做日志写入缓冲池
  1. 写入磁盘(比 1 慢)
  • 当存在事务执行步骤 2 时,其他事务先不执行步骤 2,等正在提交的事务完成提交操作后,再执行步骤 2,可以将多个事务的重做日志一次性 fsync 刷新到磁盘,大大减小磁盘压力

3. 事务控制语句

4. 隐式提交的语句

DDL 语句

修改用户、权限

管理语句

5. 事物操作统计

QPS

  • 每秒请求数

TPS

  • 每秒事务处理能力
  • (com_commit+com_rollback)/time
    前提:显示提交
    SHOW GLOBAL STATUS LIKE 'com_commit';

6. 事务的隔离级别

RU:Read Uncommitted

  • 浏览访问

RC:Read Committed

  • 游标稳定
  • 解决:赃读

RR:Repeatable Read

  • 2.9999° 的隔离,没有幻读的保护
  • 解决:赃读,不可重读

S:Serializable

  • 隔离,或 3° 的隔离
  • 解决:赃读、不可重读、幻读
评论
楼主暂时不想被别人评论哦~