[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
****
:-: 
**臟讀(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索引
- 副本集
- 聚焦分析
- 事務管理
- 寫關注
- 讀關注