四中隔離級別
**READ UNCOMMITTED(未提交讀)**
在READ UNCOMMITED級別,事務中的修改,即使沒有提交,對其他事務也是可見的.事務可以讀取未提交的數據,這些也稱為臟讀.這個級別會導致很多問題,從性能上來說未提交讀,不會比其他級別好太多,除非有必要,否則不要用
**READ COMMITTED(提交讀)**
大多數數據庫系統的默認級別都是READ COMMITTED(但mysql不是).
提交讀滿足前面提到的隔離性的簡單定義:一個事務開始時,只能"看見"已經提交的事務做的修改
一個事務從開始知道提交前,所做的任何修改對其他事務都是不可見的.
這個級別有時候也叫做不可重復讀,因為兩次執行同樣的查詢,可能會得到不一樣的結果
**REPEATABLE READ(可重復讀)**
解決了臟讀的問題,該級別保證了同一個事務中多次讀取同樣記錄的結果是一致的.但理論上,可重復讀隔離級別還是無法解決另外一個幻讀的問題
幻讀就是當某個事務在讀取某個范圍記錄的時候,另外一個事務又在該范圍內插入了新的記錄,當之前的事務再次讀取該范圍的記錄時,會產生幻行
Innodb通過多版本分發機制解決了幻讀的問題
可重復讀是mysql默認的事務隔離級別
**SERIALIZABLE(可串行化)**
是最高的事務隔離級別,他通過強制事務串行執行,避免了前面說的幻讀問題
簡單來說,可串行化會在讀取的每一行數據上都加鎖,所以可能導致大量的超時和鎖爭用的問題,實際應用中也很少用到這個隔離級別,只有在非常要確保數據一致性而且可以接受沒有并發的情況下,才考慮

- 書列表
- laravel框架關鍵技術
- 第一章 組件化開發與composer使用
- 簡介
- composer
- 添加路由組件
- 添加控制器模塊
- 添加模型組件
- 添加視圖組件
- 第三章 laravel框架中常用的php語法
- 匿名函數
- 文件包含
- 魔術方法
- 魔術常量
- 反射
- 后期靜態綁定
- traits
- 第四章 laravel框架中使用的HTTP協議基礎
- HTTP協議
- 數據庫
- 數據遷移
- 第六章 laravel框架中的設計模式
- IOC模式
- php核心技術與最佳實踐
- 第一章面向對象核心
- 反射
- 簡單ORM
- 異常和錯誤
- 接口
- 第二章,面向對象設計
- 設計原則
- 單一職責
- 接口隔離
- 開放封閉
- 替換原則
- 依賴倒置
- linux是怎么寫的呢?
- 第三章 正則表達
- 認識正則
- 第四章 php網絡技術應用
- HTTP協議詳解
- php和http相關函數
- 垃圾信息防御措施
- 現代操作系統
- 引論
- sql必知必會
- 限制結果
- 按位置排序
- where求職順序
- IN操作符
- like
- 函數
- group by
- 組合查詢
- 插入檢索出的數據
- 視圖
- 高性能mysql
- 第一章節 mysql架構與歷史
- mysql架構邏輯圖
- 連接與管理
- 優化與運行
- 讀寫鎖
- 鎖粒度
- 表鎖(table lock)
- 行級鎖(row lock)
- ACID
- 隔離級別
- 死鎖
- 隱式和顯式鎖定
- 多版本并發控制
- Innodb概覽
- 第四章節 Schema與數據類型優化
- 選擇優化的數據類型
- 日期和時間類型
- 標識列
- 特殊類型數據
- 表設計中的缺陷
- 范式
- 計數器表
- 第五章 創建高性能索引
- 索引基礎
- 索引類型
- 索引的優點
- 高性能索引策略
- 選擇合適的索引列順序
- 聚簇索引
- 順序的主鍵什么時候會造成更壞的后果
- 覆蓋索引
- 使用索引掃描來做排序
- 壓縮索引
- 冗余和重復索引
- 索引和鎖
- 支持多種過濾條件
- 什么是范圍條件
- 優化排序
- 維護索引和表
- 表損壞
- 減少索引和數據的碎片
- 第六章 查詢性能優化
- 掃描的行數和訪問類型
- 重構查詢方式
- 查詢執行的基礎
- 重構-改善既有代碼設計
- 第一章-重構
- 什么是重構
- 第一個案列
- 重構第一步
- 王垠博客
- 多態取代價格相關邏輯