一、Mysql架構與歷史
1、架構圖
Mysql架構圖.png
2、鎖
表鎖
表鎖是Mysql中最基本的鎖策略,開銷最小。
行級鎖
行鎖可以最大程度地支持并發處理。行級鎖只在存儲引擎層實現,而Mysql服務器沒有實現。服務器層完全不了解存儲引擎層的鎖實現。
3、事務
事務內的語句,要么全部執行成功,要么全部執行失敗。一個運行 良好的事務系統,必須具備ACID特性。
ACID分別表示原子性(atomicity)、一致性(consistency)、隔離性(isolation)、持久性(durability)。
隔離級別 | 臟讀 | 不可重復讀 | 幻讀 |
---|---|---|---|
未提交讀(Read uncommitted) | 可能 | 可能 | 可能 |
已提交讀(Read committed) | 不可能 | 可能 | 可能 |
可重復讀(Repeatable read) | 不可能 | 不可能 | 可能 |
可串行化(Serializable) | 不可能 | 不可能 | 不可能 |
死鎖
死鎖是指兩個或者多個事務在同一資源上相互占用,并請求鎖定對方占用的資源,從而導致惡性循環的現象。
Mysql中的事務
Mysql默認采用自動提交(AUTOCOMMIT)模式。也就是說,如果不是顯式地開始一個事務,則每個查詢都被當作一個事務執行提交操作。show variables like 'AUTOCOMMIT'; 可以用來查看該開關。
1