加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL 隔离级别

发布时间:2023-09-06 13:07:44 所属栏目:MySql教程 来源:
导读:事务是一组原子性的SQL查询,事务内的sql语句,要么全部执行成功,要么全部执行失败。本节重点介绍隔离级别。

隔离级别
在 sql 标准中,包含了四种隔离级别,即未提交读(read uncommitted)、提交读(read comm
事务是一组原子性的SQL查询,事务内的sql语句,要么全部执行成功,要么全部执行失败。本节重点介绍隔离级别。

隔离级别
在 sql 标准中,包含了四种隔离级别,即未提交读(read uncommitted)、提交读(read committed)、可重复读(repeatable read)、可串行化(serializable)。

未提交读(read uncommitted):一个事务还未提交,它所做的变更能被别的事务看到。事务可以读取未提交的数据,被称为脏读(dirty read),这种隔离级别在实际应用中一般很少使用;

提交读(read committed):一个事务提交之后,它所做的变更才能被别的事务看到。大多数数据库的默认隔离级别是提交读(read committed),比如 Oracle;

可重复读(repeatable read):一个事务在执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。在可重复读隔离级别下,未提交变更对其他事务也是不可见的。该级别保证了在同一个事务中,多次读取同样记录的结果是一致的。MysqL 的默认事务隔离级别是可重复读(repeatable read);

可串行化(serializable):serializable 是最高的隔离级别。对同一行数据,读写都会进行加锁。当出现锁冲突时,后面访问的事务必须等前一个事务完成,才能继续执行。实际应用场景很少用到这种隔离级别,只有在非常需要确保数据一致性,而且可以接受没有并发的情况,才会使用这种隔离级别。

下表为 ANSI sql 隔离级别:

隔离级别    脏读可能性    不可重复度可能性    幻读可能性    加锁读
未提交读(read uncommitted)    yes    yes    yes    no
提交读(read committed)    no    yes    yes    no
可重复读(repeatable read)    no    no    yes    no
可串行化(serializable)    no    no    no    yes
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章