OR博客
MySQL的事务
OrdinaryRoad
创建于:2021-10-04 16:08:17
0
19
80
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. 先将事务重做日志写入缓冲池 2. 写入磁盘(比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°的隔离 - 解决:赃读、不可重读、幻读
评论
楼主暂时不想被别人评论哦~