一、Mysql邏輯架構 引用自《高性能Mysql》 二、併發控制讀寫鎖:讀鎖是共用的,寫鎖是排他的,會阻塞其他的寫鎖和讀鎖。鎖粒度:表鎖、行級鎖三、事務事務(ACID特性):原子性、一致性、隔離性、持久性隔離級別 Read uncommitted未提交讀 事務中的修改,即使沒有提交,其他事務也是可見... ...
一、Mysql邏輯架構
引用自《高性能Mysql》
二、併發控制
- 讀寫鎖:讀鎖是共用的,寫鎖是排他的,會阻塞其他的寫鎖和讀鎖。
- 鎖粒度:表鎖、行級鎖
三、事務
- 事務(ACID特性):原子性、一致性、隔離性、持久性
- 隔離級別
Read uncommitted未提交讀
事務中的修改,即使沒有提交,其他事務也是可見的。
事務讀取未提交的數據叫臟讀。
Read committed提交讀
事務只能看到其他事務已經提交的修改。
這個事務在其他事務提交前後的查詢結果可能不一致叫不可重覆讀。
Repeatable read可重覆讀-Mysql預設級別
保證同一個事務多次讀取的數據一致。
當某個事物讀取某個範圍的記錄時,另一個事務往這個返回又插入了一條記錄,當之前那個事務再次讀取時,會產生幻讀。
Serializable可串列化
強制事務串列執行。
- 多個事務同事鎖定一個資源時,會導致死鎖。
死鎖後可以部分或全部回滾其中一個事務來打破死鎖,應用程式在設計時可以考慮重新執行回滾的事務。
- 事務日誌
數據的修改記錄到事務日誌並持久化,但數據本身還沒寫會磁碟時,系統崩潰,存儲引擎重啟時可以恢復這部分數據。