mysql中的特例: 記住就行了,參照:
REPEATABLE READ
這是InnoDB的默認(rèn)隔離級(jí)別。帶唯一搜索條件使用唯一索引的SELECT ... FOR UPDATE, SELECT ... LOCK IN SHARE MODE, UPDATE 和DELETE語(yǔ)句只鎖定找到的索引記錄,而不鎖定記錄前的間隙。用其它搜索條件,這些操作采用next-key鎖定,用next-key鎖定或者間隙鎖定鎖住搜索的索引范圍,并且阻止其它用戶的新插入。
持續(xù)讀是默認(rèn)模式,在其中InnoDBzai在READ COMMITTED和REPEATABLE READ隔離級(jí)別處理SELECT語(yǔ)句。持續(xù)讀不在任何它訪問(wèn)的表上設(shè)置鎖定,因此,其它用戶可自由地在持續(xù)讀在一個(gè)表上執(zhí)行的同一時(shí)間修改這些表。
在持續(xù)讀中,有一個(gè)與之前隔離級(jí)別重要的差別:在這個(gè)級(jí)別,在同一事務(wù)內(nèi)所有持續(xù)讀讀取由第一次讀所確定的同一快照。這個(gè)慣例意味著如果你在同一事務(wù)內(nèi)發(fā)出數(shù)個(gè)無(wú)格式SELECT語(yǔ)句,這些SELECT語(yǔ)句對(duì)相互之間也是持續(xù)的,請(qǐng)參閱15.2.10.4節(jié),“持續(xù)非鎖定讀”。
注意,持續(xù)讀不在DROP TABLE和ALTER TABLE上作用。持續(xù)讀不在DROP TABLE上作用,因?yàn)镸ySQL不能使用已經(jīng)被移除的表,并且InnoDB 破壞了該表。持續(xù)讀不在ALTER TABLE上作用,因?yàn)樗谀呈聞?wù)內(nèi)執(zhí)行,該事務(wù)創(chuàng)建一個(gè)新表,并且從舊表往新表中插入行。現(xiàn)在,當(dāng)你重新發(fā)出持續(xù)讀之時(shí),它不能在新表中看見(jiàn)任何行,因?yàn)樗鼈儽徊迦氲揭粋(gè)在持續(xù)讀讀取的快照中不可見(jiàn)的事務(wù)里。
|