1 3 5(2)在第二個(gè) 窗口 begin..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

1-5 大事務(wù)帶來(lái)的問(wèn)題

發(fā)布時(shí)間:2020-07-07 10:10:50 來(lái)源:網(wǎng)絡(luò) 閱讀:404 作者:skinglzw 欄目:MySQL數(shù)據(jù)庫(kù)

1-5 大事務(wù)帶來(lái)的問(wèn)題
1-5 大事務(wù)帶來(lái)的問(wèn)題
1-5 大事務(wù)帶來(lái)的問(wèn)題
1-5 大事務(wù)帶來(lái)的問(wèn)題
當(dāng)系統(tǒng)崩潰后,發(fā)現(xiàn)有沒(méi)有提交的事務(wù),有的話會(huì)回滾操作
1-5 大事務(wù)帶來(lái)的問(wèn)題
1-5 大事務(wù)帶來(lái)的問(wèn)題
1-5 大事務(wù)帶來(lái)的問(wèn)題
1-5 大事務(wù)帶來(lái)的問(wèn)題
(1)在第一個(gè) 窗口 begin; select from t where id < 7; -> 1 3 5
(2)在第二個(gè) 窗口 begin; insert into t values(2); commit;
(3)在第一個(gè) 窗口 select
from t where id < 7; -> 1 3 5 commit; 把當(dāng)前事務(wù)隔離級(jí)別改下
set sesstion tx_isolation='read-committed'; (讀已提交)
select from t where id < 7; 1 3 5 2
1-5 大事務(wù)帶來(lái)的問(wèn)題
(4)在第二個(gè) 窗口 begin; insert into t values(4); commit;
(5)在第一個(gè) 窗口 select
from t where id < 7; 1 3 5 2 4

第四種 隔離級(jí)別
可串行化 serializable 最高隔離級(jí)別 ,讀取的每一行數(shù)據(jù)都加鎖,會(huì)導(dǎo)致大量的鎖超時(shí),所以很少使用這個(gè)隔離級(jí)別,隔離性由低到高,并發(fā)性由高到低。
1-5 大事務(wù)帶來(lái)的問(wèn)題

innodb 默認(rèn)隔離級(jí)別是 可重復(fù)讀
1-5 大事務(wù)帶來(lái)的問(wèn)題

什么是大事務(wù)

定義 運(yùn)行時(shí)間比較長(zhǎng) ,操作的數(shù)據(jù)比較多的事務(wù)
風(fēng)險(xiǎn) :
1 鎖定太多的數(shù)據(jù),造成大量的阻塞和鎖超時(shí),
2 回滾時(shí)所需要時(shí)間比較長(zhǎng),執(zhí)行時(shí)間長(zhǎng),容易造成主從延遲,
3 如果主庫(kù)的事務(wù)執(zhí)行了幾個(gè)小時(shí)后再提交,才會(huì)寫(xiě)入binlog 里,從庫(kù)才會(huì)讀binlog 日志 才開(kāi)始同步
4 innodb 是行級(jí)鎖,當(dāng)涉及所有記錄時(shí),就會(huì)相當(dāng)于整個(gè)表鎖住,

如何處理大事務(wù)

1 避免一次處理太多的數(shù)據(jù)
2 移除不必要在事務(wù)中的select 操作

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI