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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

【數(shù)據(jù)庫】數(shù)據(jù)庫隔離級(jí)別的幾個(gè)疑問

2019-11-08 20:53:49
字體:
供稿:網(wǎng)友
假設(shè)有兩個(gè)事務(wù),A和B,修改同一條記錄,A開始->A修改->B開始->B讀取(time point 1)->A提交->B讀取(time point 2)在不同的隔離級(jí)別中,兩個(gè)時(shí)間點(diǎn),B讀到的記錄是怎樣的?現(xiàn)在假設(shè)person表中有一條記錄ID為1,name=RDJ, A修改person表中person的name為Anthony:注意time point 1,A并沒有提交
A隔離級(jí)別B隔離級(jí)別time point 1time point 2 
READ_UNCOMMITREAD_UNCOMMITAnthonyAnthony在時(shí)間點(diǎn)1,讀到了臟數(shù)據(jù),因?yàn)榇藭r(shí)A尚未提交,有可能A到最后也沒提交,那B此時(shí)讀取的數(shù)據(jù)就是不應(yīng)該出現(xiàn)的。
READ_UNCOMMITREAD_COMMITRDJAnthony雖然tp1讀到的是正確的數(shù)據(jù)(A尚未提交,因此為RDJ),但B在同一事物中,讀取了兩次的結(jié)果是不一樣的,造成了不可重復(fù)讀
READ_UNCOMMITREPEATABLE_READRDJRDJ雖然A提交了,但是B讀取的依然是RDJ,因此可重復(fù)讀
READ_UNCOMMITSERIALIZABLE--A不提交,B就無法讀取
READ_COMMITREAD_UNCOMMITAnthonyAnthony發(fā)現(xiàn)在事務(wù)A設(shè)置隔離屬性,事務(wù)B依然讀取到了臟數(shù)據(jù)
REPEATABLE_READREAD_UNCOMMITAnthonyAnthony發(fā)現(xiàn)在事務(wù)A設(shè)置隔離屬性,事務(wù)B依然讀取到了臟數(shù)據(jù)
SERIALIZABLEREAD_UNCOMMITAnthonyAnthony發(fā)現(xiàn)在事務(wù)A設(shè)置隔離屬性,事務(wù)B依然讀取到了臟數(shù)據(jù)
問題1:為什么A沒有提交,B也能讀取到數(shù)據(jù),難道B不是從數(shù)據(jù)庫讀取數(shù)據(jù)的嗎?可能A在未提交時(shí),對(duì)數(shù)據(jù)的修改都放在了緩存中,B從緩存中讀取了數(shù)據(jù),造成臟讀問題2:為什么對(duì)A設(shè)置隔離級(jí)別不起作用?對(duì)A設(shè)置隔離級(jí)別,A不是會(huì)鎖表嗎?為什么B還能讀到數(shù)據(jù)?MySQL內(nèi)部做了什么操作,實(shí)現(xiàn)了這四個(gè)隔離級(jí)別?當(dāng)一個(gè)事務(wù)隔離級(jí)別為Serializable時(shí),當(dāng)該事務(wù)修改或讀取一行,會(huì)對(duì)該行加鎖,此時(shí)其他事務(wù)不能修改該行,但可以讀取。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽源市| 金门县| 岑溪市| 班戈县| 光山县| 泽普县| 三穗县| 新龙县| 唐河县| 张家界市| 桐乡市| 洛宁县| 梅州市| 恩施市| 会宁县| 兴业县| 鹤壁市| 无棣县| 苍山县| 库尔勒市| 南丹县| 汉中市| 合水县| 台东市| 大庆市| 安龙县| 广西| 交城县| 大竹县| 织金县| 太仆寺旗| 德清县| 乌鲁木齐市| 南安市| 桃园县| 渭南市| 青阳县| 弋阳县| 林西县| 兰坪| 崇阳县|