mysql的InnoDB,支持事務(wù)和行級(jí)鎖,可以使用行鎖來(lái)處理用戶提現(xiàn)等業(yè)務(wù)。使用mysql鎖的時(shí)候有時(shí)候會(huì)出現(xiàn)死鎖,要做好死鎖的預(yù)防。
二、MySQL行級(jí)鎖
行級(jí)鎖又分共享鎖和排他鎖。
共享鎖:
名詞解釋:共享鎖又叫做讀鎖,所有的事務(wù)只能對(duì)其進(jìn)行讀操作不能寫(xiě)操作,加上共享鎖后其他事務(wù)不能再加排他鎖了只能加行級(jí)鎖。
用法:SELECT `id` FROM table WHERE id in(1,2) LOCK IN SHARE MODE 結(jié)果集的數(shù)據(jù)都會(huì)加共享鎖
排他鎖:
名詞解釋:若某個(gè)事物對(duì)某一行加上了排他鎖,只能這個(gè)事務(wù)對(duì)其進(jìn)行讀寫(xiě),其他事務(wù)不能對(duì)其進(jìn)行加任何鎖,其他進(jìn)程可以讀取,不能進(jìn)行寫(xiě)操作,需等待其釋放。
用法:SELECT `id` FROM mk_user WHERE id=1 FOR UPDATE