MySQL系列之九——MySQL事務和隔離級別

DML :
DELETE
INSERT INTO
UPDATE
與查詢操作有關

INSERT INTO tb_name (col1,col2,...) VALUES (val1,val2,...)[,(val1,val2,...)]
字符型 :單引號
數值型 :不需要引號
日期時間型
空值 :NULL
REPLACE INTO 替換 用法相同

DELETE :
DELETE FROM tb_name WHERE condition;
truncate tb_name 清空表並重置AUTOINCREMEN計數器;

UPDATE tb_name SET col1=...,col2=... WHERE

MYSQL 機制 :
連接管理器:
接受請求
創建線程
認證用戶
建立安全連接

併發控制 :
mbox : MDA
多版本併發控制 :MVCC 操作某個時間的快照

鎖 :
讀鎖 :共享鎖
寫鎖 :獨佔鎖
LOCK TABLES tb_name lock_type(read|write);
UNLOCK TABLES 解除所有表的鎖

鎖粒度:從大到小 ,MySQL服務器僅支持表級鎖,行鎖需要由存儲引擎完成
表鎖
頁鎖
行鎖

事務 :
RDBMS :ACID(原子性、一致性、隔離性、持久性)
事務日誌 :
重做日誌
redo log
撤消日誌
undo log

隔離級別 :
READ-UNCOMMITRED 讀未提交
READ-COMMITTED 讀提交
REPATABLE READ 可重讀
SERIABLEZABLE 可串行

多事務同時執行 :彼此之間互不影響的方式進行並行;
事務之間交互
通過數據集

ACID
Automicity 原子性,事務所引起的數據庫操作,要麼都完成,要麼都不執行;
Consistency 一致性,執行前後數據庫整體狀態沒有改變(隔離)
Isolation 隔離性 事務調度,事務之間影響最小 MVCC多版本併發控制
Durability 持久性,一旦事務成功完成,系統必須保證任何故障都不會引起事務表示出不一致性;
1、事務提交之前就已經寫出數據至持久性存儲;
2、結合事務日誌完成;
事務日誌產生順序IO
數據文件產生隨機IO

事務的狀態 :
活動的 :active
部分提交的 :最後一條語句執行後
失敗的
中止的
提交的
狀態轉換過程 :
MySQL系列之九——MySQL事務和隔離級別

事務 :允許併發執行
1、提高吞吐量和資源利用率
2、減少等待時間
事務調度 :
可恢復調度 :
無級聯調度 :

SQL ,ODBC

START TANSACTION : 啓動
COMMIT :提交
ROLLBACK :回滾

併發控制依賴的技術手段 :

時間戳
多版本和快照隔離

鎖餓死
死鎖
如果沒有明確啓動事務 :
autocommit :能實現自動提交,每一個操作都直接提交;
建議,明確使用事務,並且關閉自動提交
保存點 :SAVEPOINT SID
回滾至保存點 :ROLLBACK TO SID

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章