共享鎖:在查詢語句後面加上 lock in share mode 可在查詢到的行上面加上共享鎖,其他執行緒也可以獲取,可讀,不可修改資料。
select ... lock in share mode
排他鎖:在查詢語句後面加上 for update 可對查詢到的資料加上排它鎖,其他執行緒不可再獲得,但可讀,不可修改資料
select ... for update
事務的隔離級別:
讀不提交(read uncommit):能夠讀取未提交的記錄,事務之間沒有隔離,一般不會使用。
讀提交(read commit):只能讀取已提交的記錄。一次事務中,多次對相同的資料進行查詢可能會產生幻讀。(因為在這個過程中可能會有別的事務已經提交,改變了第一次的讀取記錄,導致兩次查詢的結果不一致)
可重複讀(read repeatable):在一次事務中,多次讀取的結果是一樣的,不管其他事務是否有提交,解決了不可重複讀的問題
髒讀:讀取了未提交事務的資料
幻讀:在乙個事務中,相同的查詢得到的結果不一樣,主要指的是其他事物執行了insert或者delete操作
不可重複讀:和幻讀相似,主要指的是其他事務執行了update操作,導致結果不一致
sql 語句相關:
begin;(開始事務)
rollback;(事務回滾)
commit;(事務提交)
select @@tx_isolation;(檢視事務的隔離級別)
mysql鎖機制 mysql 鎖機制
一 概述 mysql有三種鎖的級別 頁級 表級 行級。myisam和memory儲存引擎採用的是表級鎖 table level locking bdb儲存引擎採用的是頁面鎖 page level locking 但也支援表級鎖 innodb儲存引擎既支援行級鎖 row level locking 也...
mysql鎖機制 php Mysql鎖機制
表級鎖 開銷小,加鎖快 不會出現死鎖 鎖定粒度大,發生鎖衝突的概率最高,併發度最低。行級鎖 開銷大,加鎖慢 會出現死鎖 鎖定粒度最小,發生鎖衝突的概率最低,併發度也最高。共享鎖和排它鎖 頁面鎖 開銷和加鎖時間界於表鎖和行鎖之間 會出現死鎖 鎖定粒度界於表鎖和行鎖之間,併發度一般 mysql的行級鎖有...
mysql鎖機制總結 mysql鎖機制總結
1.隔離級別 1 讀不提交 read uncommited,ru 這種隔離級別下,事務間完全不隔離,會產生髒讀,可以讀取未提交的記錄,實際情況下不會使用。2 讀提交 read commited,rc 僅能讀取到已提交的記錄,這種隔離級別下,會存在幻讀現象,所謂幻讀是指在同乙個事務中,多次執行同乙個查...