下文主要給大家?guī)鞰ySQL數(shù)據(jù)庫事務(wù)知識,希望這些內(nèi)容能夠帶給大家實際用處,這也是我編輯MySQL數(shù)據(jù)庫事務(wù)知識這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。
成都創(chuàng)新互聯(lián)公司專注于永善企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城建設(shè)。永善網(wǎng)站建設(shè)公司,為永善等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站制作,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)只有InnoDB引擎支持事務(wù),下邊的內(nèi)容均以InnoDB引擎為默認(rèn)條件
一個事務(wù)讀取了另一個事務(wù)未提交的數(shù)據(jù)
一個事務(wù)對同一數(shù)據(jù)的讀取結(jié)果前后不一致。兩次讀取中間被其他事務(wù)修改了
幻讀是指事務(wù)讀取某個范圍的數(shù)據(jù)時,因為其他事務(wù)的操作導(dǎo)致前后兩次讀取的結(jié)果不一致?;米x和不可重復(fù)讀的區(qū)別在于,不可重復(fù)讀是針對確定的某一行數(shù)據(jù)而言,而幻讀是針對不確定的多行數(shù)據(jù)。因而幻讀通常出現(xiàn)在帶有查詢條件的范圍查詢中
可能產(chǎn)生臟讀、不可重復(fù)讀、幻讀
避免了臟讀,可能產(chǎn)生不可重復(fù)讀、幻讀
避免了臟讀,不可重復(fù)讀。通過區(qū)間鎖技術(shù)避免了幻讀
串行化可以避免所有可能出現(xiàn)的并發(fā)異常,但是會極大的降低系統(tǒng)的并發(fā)處理能力
undo日志用于存放數(shù)據(jù)修改被修改前的值
UNDO LOG中分為兩種類型,一種是 INSERT_UNDO(INSERT操作),記錄插入的唯一鍵值;
一種是 UPDATE_UNDO(包含UPDATE及DELETE操作),記錄修改的唯一鍵值以及old column記錄。
mysql會將一個事務(wù)中的所有sq先l記錄到redo log中,然后再將記錄從redo log同步到數(shù)據(jù)文件中
它可以帶來這些好處:
當(dāng)buffer pool中的dirty page 還沒有刷新到磁盤的時候,發(fā)生crash,啟動服務(wù)后,可通過redo log 找到需要重新刷新到磁盤文件的記錄;
buffer pool中的數(shù)據(jù)直接flush到disk file,是一個隨機IO,效率較差,而把buffer pool中的數(shù)據(jù)記錄到redo log,是一個順序IO,可以提高事務(wù)提交的速度;
用于數(shù)據(jù)庫主從復(fù)制的記錄,是二進(jìn)制格式。在事務(wù)提交之后進(jìn)行一個磁盤寫入。
這里注意下redo log 跟binary log 的區(qū)別,redo log 是存儲引擎層產(chǎn)生的,而binary log是數(shù)據(jù)庫層產(chǎn)生的。假設(shè)一個大事務(wù),對tba做10萬行的記錄插入,在這個過程中,一直不斷的往redo log順序記錄,而binary log不會記錄,直到這個事務(wù)提交,才會一次寫入到binary log文件中
1、默認(rèn)情況下,開啟事務(wù)自動提交功能。每執(zhí)行一個sql,都會對應(yīng)一個事務(wù)的提交
2、 spring會將底層連接的自動提交特性設(shè)置為false。使用手動提交
事務(wù)中的所有操作作為一個整體像原子一樣不可分割,要么全部成功,要么全部失敗。
事務(wù)的執(zhí)行結(jié)果必須使數(shù)據(jù)庫從一個一致性狀態(tài)到另一個一致性狀態(tài)。一致性狀態(tài)是指:1.系統(tǒng)的狀態(tài)滿足數(shù)據(jù)的完整性約束(主碼,參照完整性,check約束等) 2.系統(tǒng)的狀態(tài)反應(yīng)數(shù)據(jù)庫本應(yīng)描述的現(xiàn)實世界的真實狀態(tài),比如轉(zhuǎn)賬前后兩個賬戶的金額總和應(yīng)該保持不變。https://wenku.baidu.com/view/6bb581fdae45b307e87101f69e3143323868f5eb
并發(fā)執(zhí)行的事務(wù)不會相互影響,其對數(shù)據(jù)庫的影響和它們串行執(zhí)行時一樣。比如多個用戶同時往一個賬戶轉(zhuǎn)賬,最后賬戶的結(jié)果應(yīng)該和他們按先后次序轉(zhuǎn)賬的結(jié)果一樣。
事務(wù)一旦提交,其對數(shù)據(jù)庫的更新就是持久的。任何事務(wù)或系統(tǒng)故障都不會導(dǎo)致數(shù)據(jù)丟失。
讀取的是快照版本,也就是歷史版本。普通的SELECT就是快照讀
讀取的是最新版本。UPDATE、DELETE、INSERT、SELECT … LOCK IN SHARE MODE、SELECT … FOR UPDATE是當(dāng)前讀。
在一個事務(wù)中,標(biāo)準(zhǔn)的SELECT語句是不會加鎖,但是有兩種情況例外。SELECT … LOCK IN SHARE MODE 和 SELECT … FOR UPDATE。
SELECT ... LOCK IN SHARE MODE
給記錄假設(shè)共享鎖,這樣一來的話,其它事務(wù)只能讀不能修改,直到當(dāng)前事務(wù)提交
SELECT ... FOR UPDATE
給索引記錄加鎖,這種情況下跟UPDATE的加鎖情況是一樣的
對于以上關(guān)于MySQL數(shù)據(jù)庫事務(wù)知識,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享名稱:深入了解MySQL數(shù)據(jù)庫事務(wù)知識-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://aaarwkj.com/article44/jsehe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、響應(yīng)式網(wǎng)站、建站公司、ChatGPT、網(wǎng)站維護(hù)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容