MySQL 事务的四个隔离级别

举报
yd_283123001 发表于 2026/10/25 23:22:00 2026/10/25
【摘要】 事务隔离级别决定了多个事务并发执行时互相之间的可见性,MySQL 一共提供四个级别。读未提交(Read Uncommitted):一个事务能读到另一个事务未提交的数据,会出现脏读,实际几乎没人使用。读已提交(Read Committed):只能读到对方已提交的数据,解决了脏读,但仍可能出现不可重复读。可重复读(Repeatable Read):同一个事务内多次查询结果一致,解决了不可重复读。...

事务隔离级别决定了多个事务并发执行时互相之间的可见性,MySQL 一共提供四个级别。


读未提交(Read Uncommitted):一个事务能读到另一个事务未提交的数据,会出现脏读,实际几乎没人使用。

读已提交(Read Committed):只能读到对方已提交的数据,解决了脏读,但仍可能出现不可重复读。

可重复读(Repeatable Read):同一个事务内多次查询结果一致,解决了不可重复读。这是 InnoDB 的默认级别,也是最常用的级别,它通过 MVCC 和间隙锁在很大程度上避免了幻读。

串行化(Serializable):所有事务串行执行,彻底解决并发问题,但性能很差,只有在对一致性要求极高的场景才使用。

选择隔离级别时,核心是平衡「一致性」和「性能」。大多数互联网业务直接使用默认的可重复读即可,避免自行降级带来的风险。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。