在數(shù)據(jù)庫中不考慮事務隔離性會怎樣

這篇文章將為大家詳細講解有關在數(shù)據(jù)庫中不考慮事務隔離性會怎樣,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站建設、成都網(wǎng)站設計、云龍網(wǎng)絡推廣、小程序制作、云龍網(wǎng)絡營銷、云龍企業(yè)策劃、云龍品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供云龍建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:bm7419.com

在MySQL中如果不考慮事務的隔離性,會發(fā)生的問題如下:

1)臟讀

指在一個事務處理過程里讀取了另一個未提交的事務中的數(shù)據(jù)。

當一個事務正在多次修改某個數(shù)據(jù),而在這個事務中這多次的修改都還未提交,這時一個并發(fā)的事務來訪問該數(shù)據(jù),就會造成兩個事務得到的數(shù)據(jù)不一致。

舉例:

用戶A向用戶B轉(zhuǎn)賬100元,對應SQL命令如下:

updateaccountsetmoney=money100wherename=’B’;(此時A通知B)

updateaccountsetmoney=money-100wherename=’A’;

當只執(zhí)行第一條SQL時,A通知B查看賬戶,B發(fā)現(xiàn)確實錢已到賬(此時即發(fā)生了臟讀),而之后無論第二條SQL是否執(zhí)行,只要該事務不提交,則所有操作都將回滾,那么當B以后再次查看賬戶時就會發(fā)現(xiàn)錢其實并沒有轉(zhuǎn)。

2)不可重復讀

指在對于數(shù)據(jù)庫中的某個數(shù)據(jù),一個事務范圍內(nèi)多次查詢卻返回了不同的數(shù)據(jù)值,這是由于在查詢的時候,被另一個事務修改并提交了。

舉例:

事務T1在讀取某一數(shù)據(jù),而事務T2立馬修改了這個數(shù)據(jù)并且提交事務給數(shù)據(jù)庫,事務T1再次讀取該數(shù)據(jù)就得到了不同的結(jié)果,發(fā)送了不可重復讀。

不可重復讀和臟讀的區(qū)別是,臟讀是某一事務讀取了另一個事務未提交的臟數(shù)據(jù),而不可重復讀則是讀取了前一事務提交的數(shù)據(jù)。

在某些情況下,不可重復讀并不是問題,比如我們多次查詢某個數(shù)據(jù)當然以最后查詢得到的結(jié)果為主。但在另一些情況下就有可能發(fā)生問題,例如對于同一個數(shù)據(jù)A和B依次查詢就可能不同,A和B就可能打起來了。

比如火車票系統(tǒng):同一時間可能有人買票,也有可能有人在退票,買票的讀取到的可能是前一段時間讀取到的數(shù)據(jù),如果在這一段時間內(nèi)有人退票或者買票,則用戶讀取到的數(shù)據(jù)就不準確,可能用戶在下單的時候就提示沒有票。再次查詢的時候數(shù)據(jù)不同。

3)虛讀(幻讀)

幻讀是事務非獨立執(zhí)行時發(fā)生的一種現(xiàn)象。

舉例:

事務T1對一個表中所有的行的某個數(shù)據(jù)項做了從“1”修改為“2”的操作,這時事務T2又對這個表中插入了一行數(shù)據(jù)項,而這個數(shù)據(jù)項的數(shù)值還是為“1”并且提交給數(shù)據(jù)庫。

而操作事務T1的用戶如果再查看剛剛修改的數(shù)據(jù),會發(fā)現(xiàn)還有一行沒有修改,其實這行是從事務T2中添加的,就好像產(chǎn)生幻覺一樣,這就是發(fā)生了幻讀。

關于在數(shù)據(jù)庫中不考慮事務隔離性會怎樣就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

本文標題:在數(shù)據(jù)庫中不考慮事務隔離性會怎樣
本文網(wǎng)址:http://bm7419.com/article42/pceghc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設Google、網(wǎng)站維護營銷型網(wǎng)站建設、App開發(fā)微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站