MySQL 运维实战课
张新铭(俊达)
云掣科技资深数据库专家,前淘宝网、支付宝数据库专家
987 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 34 讲/共 41 讲
MySQL 运维实战课
15
15
1.0x
00:00/00:00
登录|注册

32|隔离级别对应用程序有什么影响?

你好,我是俊达。
事务的 ACID 属性中,I(Isolation)表示隔离性,指的是多个事务并发执行时,各个事务之间相互独立,仿佛在独立的环境中执行一样。数据库用来实现隔离性的两个重要的方法分别是 MVCC(Multi-Version Concurrency Control,多版本并发控制)和锁。
这一讲我们会介绍 MVCC,锁的内容在下一讲中再展开。

事务的隔离级别是什么意思?

事务之间互相隔离的程度使用隔离级别来描述。ISO SQL 标准定义了 4 个隔离级别,分别为 READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE。事务的隔离级别决定了并发的事务在执行过程中,读取和写入数据受其他事务的影响程度。
根据隔离级别的不同设置,事务在执行过程中可能会存在下面这几种现象:
脏读(Dirty read):读取到其他事务还没有提交的修改。
不可重复读(Nonrepeatable read):事务在 T1 时刻读取到的记录,在 T2 时刻再次读取时,可能会发生变化,要么字段被更新了,要么记录被删除了。
幻读(Phantom read):事务中的一个 SQL,在 T1 时刻执行获取到的记录,在 T2 时刻执行同一个 SQL 时,依然能获取到,但是在 T2 时刻还能获取到额外的记录。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 事务的隔离级别对并发事务的影响,包括脏读、不可重复读和幻读等现象。 2. MySQL支持的四种隔离级别:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE。 3. 不同隔离级别下的数据可见性差异,如READ UNCOMMITTED允许读取未提交的修改。 4. READ COMMITTED下可能出现不可重复读和幻读。 5. REPEATABLE READ下保证可重复读,且没有幻读。 6. MySQL的隔离级别实现了可重复读,但仍可能出现幻读和不可重复读。 7. 隔离级别可通过设置全局、会话或下一个事务的隔离级别来确定。 8. 使用set @@transaction_isolation设置下一个事务的隔离级别,修改只对下一个事务生效。 9. MVCC是InnoDB的一个重要机制,通过MVCC,MySQL实现了读不阻塞写,写不阻塞读。 10. InnoDB Purge线程会定期清理Undo日志,但是有些情况下,清理可能会有比较大的延迟,导致Undo表空间持续增长。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《MySQL 运维实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部