mysql隔离级别

什么是隔离级别

多个连接开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个连接在获取数据时的准确性。

为什么要有隔离级别

当一个数据库被多个连接访问同一张表时,一个连接进行操作时另一个连接可能出现各种数据错误;

1、脏读

        当一个事务读取另一个事务尚未提交的修改时,产生脏读

2、不可重复读

        同意查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生不可重复读

3、幻读

        同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻读

 

解决方法

为事务增加隔离级别

mysql默认隔离级别REPEATABLE-READ

 将隔离级别修改为READ-UNCOMMITTED

 创建一张表以供测试

CREATE TABLE `account`(
	id INT,
	`name` VARCHAR(32),
	money DOUBLE);

在一个服务中插入数据但未提交,却能在另一方中查询到提交的数据

 发生了脏读

当一方修改数据时但未提交,另一方却能够直接查询到修改后的数据

 发生了不可重复读

当一方插入数据时但未提交,另一方却能够直接查询到插入后的数据

发生了幻读 

当有多个连接进行数据操作时如果不加以隔离控制,数据的查询会变得十分混乱

当二者隔离级别皆为REPEATABLE-READ时则以上错误皆不会出现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zen1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值