MySQL 事务的四个隔离级别
【摘要】 事务隔离级别决定了多个事务并发执行时互相之间的可见性,MySQL 一共提供四个级别。读未提交(Read Uncommitted):一个事务能读到另一个事务未提交的数据,会出现脏读,实际几乎没人使用。读已提交(Read Committed):只能读到对方已提交的数据,解决了脏读,但仍可能出现不可重复读。可重复读(Repeatable Read):同一个事务内多次查询结果一致,解决了不可重复读。...
事务隔离级别决定了多个事务并发执行时互相之间的可见性,MySQL 一共提供四个级别。
读未提交(Read Uncommitted):一个事务能读到另一个事务未提交的数据,会出现脏读,实际几乎没人使用。
读已提交(Read Committed):只能读到对方已提交的数据,解决了脏读,但仍可能出现不可重复读。
可重复读(Repeatable Read):同一个事务内多次查询结果一致,解决了不可重复读。这是 InnoDB 的默认级别,也是最常用的级别,它通过 MVCC 和间隙锁在很大程度上避免了幻读。
串行化(Serializable):所有事务串行执行,彻底解决并发问题,但性能很差,只有在对一致性要求极高的场景才使用。
选择隔离级别时,核心是平衡「一致性」和「性能」。大多数互联网业务直接使用默认的可重复读即可,避免自行降级带来的风险。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)