事务隔离级别

数据库隔离级别

多个事务并发执行可能导致的问题

脏读:

事务1进行了数据更新操作但没有提交,事务2读取数据进行操作。如果事务1进行了回滚操作。导致的事务2读取的数据是无效的。

不可重复读

事务1读取了数据,事务2对数据进行了更新操作且提交。事务1再次读会出现不同的值。

幻读

事务1读取了表的数据集,事务2对表进行了新增操作且提交。事务1再次读取会返回多的数据。

事务的4个隔离级别,级别越高并发性能越低。

隔离级别
read commited 读已提交数据
read uncommited 读未提交数据
repeateable read 可重复读
serializable 串行化

读未提交数据

允许事务读取其他事务未提交的变更。脏读、不可重复读、幻读都会出现

读已提交

只允许读其他事务已提交的变更。防止了脏读

可重复读

对于读取的数据,不允许其他事务进行修改、删除(但是可以对表进行_新增_操作,所以不能防止幻读)。不会出现脏读、和不可重复读

串行化

在事务进行期间,其他事务不可对表进行新增,删除、修改操作。


Mysql 默认级别为可重复读

posted @ 2020-07-30 16:53  漫游地球  阅读(98)  评论(0编辑  收藏  举报