# 查看 數據庫默認的隔離級別
select @@tx_isolation;
# 設置隔離級別
set tx_isolation = "read-uncommitted"
/*
隔離級別分類
READ-UNCOMMITTED 該事物隔離級別可讀取其它事物未提交的結果
READ-COMMITTED 該事物隔離級別只會讀取已提交的數據,在事務中已更改但未讀取的數據不會讀取
REPEATABLE-READ 該事務隔離級別只會讀取已提交的結果,與READ-COMMITTED不同的是,repeatable-read在開啓事務的情況下,
同一條件的查詢返回的結果永遠是一致的,無論其它事物是否提交了新的數據
SERIALIZABLE 種隔離級別和repeatable-read類似,只會讀取其它事物已提交的內容,有一點不同的地方在於,
如果autocommit爲false,那麼每一條select語句會自動被轉化爲select ... lock in share mode.這樣出現一些阻塞情況
*/
# 鎖必須爲主鍵 或唯一索引 innodb行鎖
# 共享鎖 S 鎖 讀鎖
select * from table where id=1 lock in share mode;
# 排他鎖 X 鎖 寫鎖
select * from table where id=1 for update
# 意向共享鎖 IS
#
# 意向排他鎖 IX
#
# 自增鎖
#
# 臨建鎖 < > between 有匹配記錄 範圍鎖 記錄查詢上下外邊界 左開右閉
#
# 間隙鎖 無匹配記錄 範圍鎖 記錄查詢上下外邊界 左開右閉
#
# 記錄鎖
#
# 鎖對應隔離級別
# 幻讀 臨建鎖
#
# 不可重複讀 S鎖
#
# 髒讀 X鎖