大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说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