首页 > 数据库技术 > 详细

MySQL: Mysql 事务隔离级别

时间:2021-07-14 10:36:33      阅读:20      评论:0      收藏:0      [点我收藏+]

数据并发访问(了解)

一个数据库可能拥有多个访问客户端,这些客户端都可以并发方式访问数据库.

数据库的相同数据可能被 多个事务同时访问,如果不采取隔离措施,就会导致各种问题, 破坏数据的完整性

 

并发访问会产生的问题

事务在操作时的理想状态: 所有的事务之间保持隔离,互不影响。

因为并发操作,多个用户同时访问同 一个 数据。可能引发并发访问的问题

并发访问 的问题 说明
脏读 一个事务读取到了另一个事务中尚未提交的数据
不可重复 读 一个事务中两次读取的数据内容不一致, 要求的是在一个事务中多次读取时数据是一 致的. 这是进行 update 操作时引发的问题
幻读

一个事务中,某一次的 select 操作得到的结果所表征的数据状态, 无法支撑后续的业务 操作.

查询得到的数据状态不准确,导致幻读.

 

四种隔离级别

通过设置隔离级别,可以防止上面的三种并发问题. MySQL数据库有四种隔离级别 上面的级别最低,下面 的级别最高。

  ? 会出现问题

  ? 不会出现问题

级 别 名字 隔离级别 脏 读 不可重复 读 幻 读 数据库的默认隔离级 别
1 读未提 交 read uncommitted ? ? ?  
2 读已提 交 read committed ? ? ? Oracle和SQLServer
3 可重复 读 repeatable read ? ? ? MySql
4 串行化 serializable ? ? ?  

 

隔离级别相关命令

1) 查看隔离级别

select @@tx_isolation;

技术分享图片

 

 2) 设置事务隔离级别,需要退出 MySQL 再重新登录才能看到隔离级别的变化

set global transaction isolation level 级别名称;
read uncommitted 读未提交
read committed 读已提交
repeatable read 可重复读
serializable 串行化

例如: 修改隔离级别为 读未提交

set global transaction isolation level read uncommitted;

 

MySQL: Mysql 事务隔离级别

原文:https://www.cnblogs.com/JasperZhao/p/15008814.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!