持續(xù)非鎖定讀 |
發(fā)布時間: 2012/8/24 17:43:27 |
持續(xù)讀意味著InnoDB使用它的多版本化來給一個查詢展示某個時間點處數(shù)據(jù)庫的快照。查詢看到在那個時間點之前被提交的那些確切事務(wù)做的更改,并且沒有其后的事務(wù)或未提交事務(wù)做的改變。這個規(guī)則的例外是,查詢看到發(fā)布該查詢的事務(wù)本身所做的改變。 如果你運行在默認(rèn)的REPEATABLE READ隔離級別,則在同一事務(wù)內(nèi)的所有持續(xù)讀讀取由該事務(wù)中第一個這樣的讀所確立的快照。你可以通過提交當(dāng)前事務(wù)并在發(fā)布新查詢的事務(wù)之后,為你的查詢獲得一個更新鮮的快照。
持續(xù)讀是默認(rèn)模式,在其中InnoDBzai在READ COMMITTED和REPEATABLE READ隔離級別處理SELECT語句。持續(xù)讀不在任何它訪問的表上設(shè)置鎖定,因此,其它用戶可自由地在持續(xù)讀在一個表上執(zhí)行的同一時間修改這些表。
注意,持續(xù)讀不在DROP TABLE和ALTER TABLE上作用。持續(xù)讀不在DROP TABLE上作用,因為MySQL不能使用已經(jīng)被移除的表,并且InnoDB 破壞了該表。持續(xù)讀不在ALTER TABLE上作用,因為它在某事務(wù)內(nèi)執(zhí)行,該事務(wù)創(chuàng)建一個新表,并且從舊表往新表中插入行,F(xiàn)在,當(dāng)你重新發(fā)出持續(xù)讀之時,它不能在新表中看見任何行,因為它們被插入到一個在持續(xù)讀讀取的快照中不可見的事務(wù)里。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |