悲观锁: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