日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

mysql事务实战_MySQL实战45讲学习-事务相关笔记

發(fā)布時間:2025/3/15 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql事务实战_MySQL实战45讲学习-事务相关笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、務(wù)的特性:原子性、一致性、隔離性、持久性

2、多事務(wù)同時執(zhí)行的時候,可能會出現(xiàn)的問題:臟讀、不可重復(fù)讀、幻讀

3、事務(wù)隔離級別:讀未提交、讀提交、可重復(fù)讀、串行化

4、不同事務(wù)隔離級別的區(qū)別:

讀未提交:一個事務(wù)還未提交,它所做的變更就可以被別的事務(wù)看到

讀提交:一個事務(wù)提交之后,它所做的變更才可以被別的事務(wù)看到

可重復(fù)讀:一個事務(wù)執(zhí)行過程中看到的數(shù)據(jù)是一致的。未提交的更改對其他事務(wù)是不可見的

串行化:對應(yīng)一個記錄會加讀寫鎖,出現(xiàn)沖突的時候,后訪問的事務(wù)必須等前一個事務(wù)執(zhí)行完成才能繼續(xù)執(zhí)行

5、配置方法:啟動參數(shù)transaction-isolation

6、事務(wù)隔離的實現(xiàn):每條記錄在更新的時候都會同時記錄一條回滾操作。同一條記錄在系統(tǒng)中可以存在多個版本,這就是數(shù)據(jù)庫的多版本并發(fā)控制(MVCC)。

7、回滾日志什么時候刪除?系統(tǒng)會判斷當(dāng)沒有事務(wù)需要用到這些回滾日志的時候,回滾日志會被刪除。

8、什么時候不需要了?當(dāng)系統(tǒng)里么有比這個回滾日志更早的read-view的時候。

9、為什么盡量不要使用長事務(wù)。長事務(wù)意味著系統(tǒng)里面會存在很老的事務(wù)視圖,在這個事務(wù)提交之前,回滾記錄都要保留,這會導(dǎo)致大量占用存儲空間。除此之外,長事務(wù)還占用鎖資源,可能會拖垮庫。

10、事務(wù)啟動方式:一、顯式啟動事務(wù)語句,begin或者start

transaction,提交commit,回滾rollback;二、set

autocommit=0,該命令會把這個線程的自動提交關(guān)掉。這樣只要執(zhí)行一個select語句,事務(wù)就啟動,并不會自動提交,直到主動執(zhí)行commit或rollback或斷開連接。

11、建議使用方法一,如果考慮多一次交互問題,可以使用commit

work and

chain語法。在autocommit=1的情況下用begin顯式啟動事務(wù),如果執(zhí)行commit則提交事務(wù)。如果執(zhí)行commit work

and chain則提交事務(wù)并自動啟動下一個事務(wù)。

臟讀:

當(dāng)數(shù)據(jù)庫中一個事務(wù)A正在修改一個數(shù)據(jù)但是還未提交或者回滾,

另一個事務(wù)B 來讀取了修改后的內(nèi)容并且使用了,

之后事務(wù)A提交了,此時就引起了臟讀。

此情況僅會發(fā)生在: 讀未提交的的隔離級別.

不可重復(fù)讀:

在一個事務(wù)A中多次操作數(shù)據(jù),在事務(wù)操作過程中(未最終提交),

事務(wù)B也才做了處理,并且該值發(fā)生了改變,這時候就會導(dǎo)致A在事務(wù)操作

的時候,發(fā)現(xiàn)數(shù)據(jù)與第一次不一樣了。 就是不可重復(fù)讀。

此情況僅會發(fā)生在:讀未提交、讀提交的隔離級別.

幻讀:

一個事務(wù)按相同的查詢條件重新讀取以前檢索過的數(shù)據(jù),

卻發(fā)現(xiàn)其他事務(wù)插入了滿足其查詢條件的新數(shù)據(jù),這種現(xiàn)象就稱為幻讀。

幻讀是指當(dāng)事務(wù)不是獨立執(zhí)行時發(fā)生的一種現(xiàn)象,例如第一個事務(wù)對一個表中的數(shù)據(jù)進行了修改,比如這種修改涉及到表中的“全部數(shù)據(jù)行”。同時,第二個事務(wù)也修改這個表中的數(shù)據(jù),這種修改是向表中插入“一行新數(shù)據(jù)”。那么,以后就會發(fā)生操作第一個事務(wù)的用戶發(fā)現(xiàn)表中還存在沒有修改的數(shù)據(jù)行,就好象發(fā)生了幻覺一樣.

一般解決幻讀的方法是增加范圍鎖RangeS,鎖定檢索范圍為只讀,這樣就避免了幻讀。

此情況會回發(fā)生在:讀未提交、讀提交、可重復(fù)讀的隔離級別.

事務(wù)的隔離級別:

四種:讀未提交 、 讀提交 、 可重復(fù)讀、 串行化。

總結(jié)

以上是生活随笔為你收集整理的mysql事务实战_MySQL实战45讲学习-事务相关笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。