国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

事物之隔離性詳解

2019-11-08 20:59:01
字體:
來源:轉載
供稿:網友

概念:事務的隔離性是多個用戶并發訪問數據庫時,數據庫為每一個用戶開啟的失去,不能被其他事務的操作數據所干擾,多個并發事務之間要相互隔離。

多個線程開啟各自事務操作數據庫中數據時,數據庫系統要負責隔離操作,以保證各個線程在獲取數據時的準確性。

如果不考慮隔離性,可能會引發如下問題:

1、臟讀:是指一個事務讀取了另一個事務沒有提交的數據。

假如A和B各自有100元錢,A向B轉了100元錢,執行update account set money=money+100 while name=‘b’;update account set money=money-100 while name=‘a’;當第一條執行完,第二條還沒執行,B查詢自己的賬戶,就會發現自己的賬戶多了100元,如果此時A再回滾自己的操作,那么B之后再查詢自己的賬戶,就會發現自己的錢和之前并沒有變化,還是100

2、不可重復讀

在一個事務內讀取表中的某一行數據,多次讀取結果不相同。

還是上面那個例子,轉賬之前,銀行查詢A的賬戶是100元錢,A向B轉了100之后,銀行 對應上面兩個sql語句并且已經提交,又查詢A賬戶,發現是0元。這就導致了兩次查詢結果不相同。

注意:不可重復讀有時候是正確的,就像這種情況,正是實際情況需要的,然而有時,不可重復讀是不正確的,比如對某個地區統計GDP,兩次查詢結果不一樣,該怎么報道呢?所以這種情況又是錯誤的。

不可重復讀和臟讀的區別,臟讀是讀取前一事務未提交的臟數據,不可重復讀是重新讀取了前一事務已經提交的數據。

3、虛讀:是指在一個事務內讀取到了別的事務插入的數據,導致前后讀取不一致。

假如一個人存款100元沒有提交,這時銀行做報表統計所有用戶的總額為600元,然后這個人提交了這時銀行再統計發現賬戶為700元了,這就是虛讀。

說了問題,那么怎么避免這些問題呢?請看我另一篇博客


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永州市| 堆龙德庆县| 东城区| 凤山市| 盐亭县| 丰顺县| 凉山| 凌海市| 色达县| 明溪县| 阳新县| 会理县| 夏邑县| 溆浦县| 柏乡县| 锡林郭勒盟| 开封市| 德江县| 灵寿县| 寿宁县| 元朗区| 秭归县| 呈贡县| 松滋市| 水富县| 商南县| 民县| 易门县| 民县| 龙江县| 双江| 万荣县| 大港区| 南溪县| 绥棱县| 榆社县| 厦门市| 县级市| 唐山市| 上虞市| 揭东县|