[TOC]
# 1. 隔离级别
事务隔离级别共有4个级别。
<br/>
**1. READ_UNCOMMITTED(读未提交)**
允许事务A读取事务B未提交的修改。
<br/>
**2. READ_COMMITTED(读已提交)**
事务A只能读取事务B已提交的修改。
<br/>
**3. REPEATABLE_READ(可重复读)**
确保事务A可以多次从一个字段中读取到相同的值,即事务A执行期间禁止其它事务对这个字段进行更新。
<br/>
**4. SERIALIZABLE(串行化)**
确保事务A可以多次从一个表中读取到相同的行,在事务A执行期间,禁止其它事务对这个表进行添加、更新、删除操作。可以避免任何并发问题,但性能十分低下。
<br/>
# 2. 不同隔离级别产生的问题
转载自:https://www.cnblogs.com/zs869/p/11673026.html
****
:-: ![](https://img.kancloud.cn/0a/17/0a170f6d189a3879e8576f2178d058a7_556x133.png)
**脏读(dirty read):** 当一个事务读取另一个事务未提交的修改时,产生脏读。
**不可重复读(nonrepeated read):** 同一查询在同一事务中多次进行,由于其他事务提交所做的修改,导致每次返回的结果不同,此时发生不可重复读。
**幻读(phantom read):** 同一查询在同一事务中多次进行,由于其他事务提交所做的新增或删除操作,导致每次得到的不同的结果集,此时发生幻读。
<br/>
不可重复读侧重于修改,幻读侧重于新增或者删除。解决不可重复读只需要锁住满足条件的行,解决幻读需要锁表。
<br/>
# 3. MySQL与Oracle的隔离级别
**1. Oracle的事务隔离级别有两种**
```
READ COMMITTED :读已提交
SERIALIZABLE:串行读取
```
>[info]Oracle默认隔离级别为:读已提交(READ COMMITTED)
**2. MySQL的事务隔离级别有四种**
转载自:https://www.cnblogs.com/zs869/p/11673026.html
****
```
读未提交 (Read uncommitted)
读已提交 (Read committed)
可重复读 (Repeated read)
可串行化 (Serializable)
```
>[info]MySQL默认隔离级别为:可重复读 (Repeated read)
- MySQL
- MySQL是什么
- MySQL环境搭建
- centos7-MySQL8
- windows-MySQL8
- 数据库软件
- sqlyog软件安装
- navicat软件安装
- powerDesigner软件安装
- RDBMS术语
- SQL语句组成
- 数据库系统组成
- 数据库操作
- 数据表操作
- 查询语句
- 基本语法
- 子查询
- 表连接
- 查询语句执行顺序
- 事务
- 事务是什么
- 事务的作用
- 事务的4个特性
- 事务隔离级别
- 事务的实现
- 索引
- 索引的作用
- 索引操作
- 存储引擎
- 备份与恢复
- 视图
- 视图是什么
- 视图的作用
- 创建视图
- 查看视图
- 更改视图
- DML操作视图
- 删除视图
- 存储过程与函数
- 过程与函数是什么
- 存储过程操作
- 定义存储过程
- 调用存储过程
- 查看存储过程
- 删除存储过程
- 修改存储过程
- 函数操作
- 过程与函数区别
- 流程控制
- if语句
- case语句
- while循环语句
- repeat循环语句
- loop循环语句
- 变量
- 处理程序
- 光标
- Redis
- 简介
- 下载与安装
- 命令操作redis数据库
- 通用命令
- 数据操作
- 持久化
- Windows上的持久化操作
- 数据库设计
- 数据库设计过程
- ER模型图
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 数据模型
- 安装MongoDB
- MongoDB认证
- Database操作
- Collection操作
- Document操作
- 插入
- 查询
- 更新
- 删除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事务管理
- 写关注
- 读关注