国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 邢台市| 崇仁县| 常宁市| 彩票| 长宁县| 罗定市| 白城市| 邻水| 阳朔县| 商城县| 怀仁县| 施甸县| 唐山市| 天台县| 文成县| 汕头市| 双峰县| 古丈县| 吉林省| 枣庄市| 兴和县| 迁西县| 集安市| 清水县| 肃宁县| 廊坊市| 秭归县| 山阳县| 莒南县| 会理县| 辛集市| 青浦区| 杭州市| 砀山县| 关岭| 文山县| 手游| 莲花县| 宕昌县| 彰化县| 海盐县|