国产探花免费观看_亚洲丰满少妇自慰呻吟_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元了,這就是虛讀。

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中山市| 大连市| 枣阳市| 抚顺市| 泸水县| 安义县| 南康市| 祁连县| 靖西县| 高密市| 崇义县| 梧州市| 襄樊市| 上栗县| 正宁县| 镇远县| 广安市| 云龙县| 桂林市| 蒲江县| 连城县| 西乡县| 汶川县| 陇西县| 阳城县| 方城县| 玛多县| 韶山市| 长子县| 揭东县| 五指山市| 靖西县| 兴业县| 时尚| 鄂温| 镇巴县| 荥阳市| 嵊州市| 大连市| 铜陵市| 正阳县|