数据库多个事物的并发问题

WBOY
發布: 2016-06-07 15:00:03
原創
1046 人瀏覽過

数据库并发操作存在的异常情况 — 脏读 设置数据库的隔离级别 : setTRANSACTION ISOLATION LEVEL READUNCOMMITTEDspan style=font-size:14px业务情景:/span 张三准备用 ATM 机向其北京招行的帐户汇 1000 块钱,在汇之前先用其智能手机的手机银行客户端查询

数据库并发操作存在的异常情况脏读

设置数据库的隔离级别:        

  setTRANSACTION ISOLATION LEVEL  READUNCOMMITTED<span style="font-size:14px">业务情景:</span>
登入後複製

             张三准备用ATM机向其北京招行的帐户汇1000块钱,在汇之前先用其智能手机的手机银行客户端查询到其北京账户还剩100,接着他用ATM机向其北京帐户打过去1000,在提示确认提交时,他又用手机查看了一下其帐户余额竟然为1100

 

数据库并发操作存在的异常情况不可重复读

设置数据库的隔离级别:

setTRANSACTION ISOLATION LEVEL  READCOMMITTED ;<span style="font-size:14px">业务情景:</span>
登入後複製

             张三用其智能手机的手机银行客户端查询其招行帐户余额为100元,他没有马上退出,去做了一会别的事,在此过程中他老婆在一个ATM机上向其帐户上汇入了1000元,他回来后又刷新了一下余额,竟然为1100元。

 

数据库并发操作存在的异常情况——幻读(Magic read)

设置数据库的隔离级别 

setTRANSACTION ISOLATION LEVEL  REPEATABLEREAD;<span style="font-size:14px">业务情景:</span>
登入後複製

         张三用其智能手机的手机银行客户端查询其招行帐户余额为300元,他准备用其中的200去抢购一个商品,在他没付款之前他的老婆取走100元,他再次查看了一下余额,还是300元,他花了200支付了商品,在支付完后,他再次查了一下余额,竟然发现账户里一毛钱都没有啦!

 

 

数据库并发操作存在的情况— 不能并发

设置数据库的隔离级别:

<span style="color:#000000">setTRANSACTION ISOLATION LEVEL SERIALIZABLE;</span>
登入後複製

业务情景:

             张三用其智能手机的手机银行客户端查询其招行帐户余额为99.9元,但他需要100元才能支付抢购,他QQ告知老婆在线等待,他老婆立马找到一个ATM机准备向其帐户上汇入了100元,但钱就是汇不进去。

 

 

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板