您好,登錄后才能下訂單哦!
RC |
事務開始 |
(1).執(zhí)行SQL語句之前,將系統(tǒng)中非當前活躍事務信息輸出到一個副本trx_list |
(2).用戶在當前SQL開始讀取記錄,假設讀取到的記錄事務ID為trx_id_0 |
(3).找出trx_list 中最早的事務trx_id_1 和 最晚的事務trx_id_2 |
(4).如果trx_id_0<trx_id_1 則表示該行記錄在本sql執(zhí)行之前已經(jīng)commit,所以該行可見。轉(zhuǎn)至(8)</trx_id_1 則表示該行記錄在本sql執(zhí)行之前已經(jīng)commit,所以該行可見。轉(zhuǎn)至(8)<> |
(5).如果trx_id_0>trx_id_2 則表示該行記錄在本SQL執(zhí)行之后發(fā)生了其他事務,因此該行不可見。轉(zhuǎn)至(7) |
(6).如果trx_id_1<=trx_id_0<=trx_id_2 則表示該行記錄在本SQL開啟時處于活動狀態(tài),因此該行不可見。轉(zhuǎn)至(7) |
(7).從該行記錄的DB_ROLL_PTR指針所指向的回滾段中取出最新的undo-log的版本號,將它賦值該trx_id_0,然后跳到步驟(4) |
(8).將該行的數(shù)據(jù)返回給用戶,跳轉(zhuǎn)至(2) |
(9).所有記錄遍歷完畢,關(guān)閉trx_list,跳轉(zhuǎn)至(1),執(zhí)行下一條SQL |
事務結(jié)束 |
RR |
事務開始,將系統(tǒng)中非當前活躍事務信息輸出到一個副本trx_list |
(1).執(zhí)行SQL語句 |
(2).用戶在當前本事務開始讀取記錄,假設讀取到的記錄事務ID為trx_id_0 |
(3).找出trx_list 中最早的事務trx_id_1 和 最晚的事務trx_id_2 |
(4).如果trx_id_0<trx_id_1 則表示該行記錄在本事務開啟之前已經(jīng)commit,所以該行可見。轉(zhuǎn)至(8)</trx_id_1 則表示該行記錄在本事務開啟之前已經(jīng)commit,所以該行可見。轉(zhuǎn)至(8)<> |
(5).如果trx_id_0>trx_id_2 則表示該行記錄在本事務開啟之后發(fā)生了其他事務,因此該行不可見。轉(zhuǎn)至(7) |
(6).如果trx_id_1<=trx_id_0<=trx_id_2 則表示該行記錄在本事務開啟時處于活動狀態(tài),因此該行不可見。轉(zhuǎn)至(7) |
(7).從該行記錄的DB_ROLL_PTR指針所指向的回滾段中取出最新的undo-log的版本號,將它賦值該trx_id_0,然后跳到步驟(4) |
(8).將該行的數(shù)據(jù)返回給用戶,跳轉(zhuǎn)至(2) |
(9).所有記錄遍歷完畢,跳轉(zhuǎn)至(1),執(zhí)行下一條SQL |
事務結(jié)束,關(guān)閉trx_list |
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。