悲觀鎖:select from for update,先將數據鎖住,再執行update。須要將autoCommit關閉,進行手動提交。mysql
樂觀鎖:能夠經過增長version字段實現,sql
如select version from,ui
update set xxx, version=v+1 where id=?and version=v;.net
全部修改數據的都須要遞增version,因此能夠經過這個來確保別人沒修改過。blog
不加鎖方式如扣款: update set where uid=? and account > ?it
只要保證賬戶裏有足夠的錢就ok了,充分利用mysql本身的行鎖io
http://blog.csdn.net/xz0125pr/article/details/51698507date