MySQL总结(十三)数据库事务隔离级别-概述

MySQL总结(十三)数据库事务隔离级别-概述事务的隔离级别 1.ACID事务的四大特性 事务特性 含义 原子性(Atomicity) 每个事务都是一个整体,不可再拆分,事务中所有的sql语句要么全部执行成功,要么全部执行失败。 一致性(Con…

MySQL总结(十三)数据库事务隔离级别-概述

MySQL总结(十三)数据库事务隔离级别-概述

事务的隔离级别

1.ACID事务的四大特性

事务特性 含义
原子性(Atomicity) 每个事务都是一个整体,不可再拆分,事务中所有的sql语句要么全部执行成功,要么全部执行失败。
一致性(Consistency) 事务在执行前数据库的状态与执行后数据库的状态保持一致。如:转账前2 个人的总金额是 2000 ,转账后 2 个人总金额也是 2000
隔离性 事务与事务之间不应该相互影响,执行时保持隔离的状态。
持久性 一旦事务执行成功,对数据库的修改是持久的。就算关机,也是保存下来的。

2.并发访问可能出现的问题

  • 事务在操作时的理想状态:

所有的事务之间保持隔离,互不影响。因为并发操作,多个用户同时访问同一个数据。

  • 可能引发并发访问的问题:
并发访问的问题 含义
脏读 一个事务读取到了另一个事务中尚未提交的数据
不可重复读 一个事务中两次读取的数据 内容 不一致,要求的是一个事务中多次读取时数据是一致的, 这是事务 update 时引发的问题
幻读 一个事务中两次读取的数据的 数量 不一致,要求在一个事务多次读取的数据的数量是一致的,这是 insert 或 或 delete 时引发的问题

3. MySql数据库有四种隔离级别

上面的级别最低,下面的级别最高。“是”表示会出现这种问题,“否”表示不会出现这种问题。

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

隔离级别越高,性能越差,安全性越高。

4.MySQL事务隔离级别相关的命令

  • 查询全局事务隔离级别

查询隔离级别: select @@tx_isolation;

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

设置隔离级别: set global transaction isolation level 级别字符串;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7873.html

(0)
上一篇 2023-03-12
下一篇 2023-03-12

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注