真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么深入分析MySQL數(shù)據(jù)庫(kù)事務(wù)-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)怎么深入分析MySQL數(shù)據(jù)庫(kù)事務(wù),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

目前創(chuàng)新互聯(lián)建站已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、遂寧網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

一、前言

只有InnoDB引擎支持事務(wù),下邊的內(nèi)容均以InnoDB引擎為默認(rèn)條件

二、常見(jiàn)的并發(fā)問(wèn)題

1、臟讀

一個(gè)事務(wù)讀取了另一個(gè)事務(wù)未提交的數(shù)據(jù)

2、不可重復(fù)讀

一個(gè)事務(wù)對(duì)同一數(shù)據(jù)的讀取結(jié)果前后不一致。兩次讀取中間被其他事務(wù)修改了

3、幻讀

幻讀是指事務(wù)讀取某個(gè)范圍的數(shù)據(jù)時(shí),因?yàn)槠渌聞?wù)的操作導(dǎo)致前后兩次讀取的結(jié)果不一致?;米x和不可重復(fù)讀的區(qū)別在于,不可重復(fù)讀是針對(duì)確定的某一行數(shù)據(jù)而言,而幻讀是針對(duì)不確定的多行數(shù)據(jù)。因而幻讀通常出現(xiàn)在帶有查詢條件的范圍查詢中

三、事務(wù)隔離級(jí)別

1、讀未提交(READ UNCOMMITTED)

可能產(chǎn)生臟讀、不可重復(fù)讀、幻讀

2、讀已提交(READ COMMITTED)

避免了臟讀,可能產(chǎn)生不可重復(fù)讀、幻讀

3、可重復(fù)讀(REPEATABLE READ)(mysql默認(rèn)隔離級(jí)別)

避免了臟讀,不可重復(fù)讀。通過(guò)區(qū)間鎖技術(shù)避免了幻讀

4、串行化(SERIALIZABLE)

串行化可以避免所有可能出現(xiàn)的并發(fā)異常,但是會(huì)極大的降低系統(tǒng)的并發(fā)處理能力

四、數(shù)據(jù)庫(kù)日志有哪些?

1、undo日志

undo日志用于存放數(shù)據(jù)修改被修改前的值

UNDO LOG中分為兩種類型,一種是 INSERT_UNDO(INSERT操作),記錄插入的唯一鍵值;

一種是 UPDATE_UNDO(包含UPDATE及DELETE操作),記錄修改的唯一鍵值以及old column記錄。

2、redo日志

mysql會(huì)將一個(gè)事務(wù)中的所有sq先l記錄到redo log中,然后再將記錄從redo log同步到數(shù)據(jù)文件中

它可以帶來(lái)這些好處:

  • 當(dāng)buffer pool中的dirty page 還沒(méi)有刷新到磁盤的時(shí)候,發(fā)生crash,啟動(dòng)服務(wù)后,可通過(guò)redo log 找到需要重新刷新到磁盤文件的記錄;

  • buffer pool中的數(shù)據(jù)直接flush到disk file,是一個(gè)隨機(jī)IO,效率較差,而把buffer pool中的數(shù)據(jù)記錄到redo log,是一個(gè)順序IO,可以提高事務(wù)提交的速度;

3、binlog日志

用于數(shù)據(jù)庫(kù)主從復(fù)制的記錄,是二進(jìn)制格式。在事務(wù)提交之后進(jìn)行一個(gè)磁盤寫(xiě)入。

這里注意下redo log 跟binary log 的區(qū)別,redo log 是存儲(chǔ)引擎層產(chǎn)生的,而binary log是數(shù)據(jù)庫(kù)層產(chǎn)生的。假設(shè)一個(gè)大事務(wù),對(duì)tba做10萬(wàn)行的記錄插入,在這個(gè)過(guò)程中,一直不斷的往redo log順序記錄,而binary log不會(huì)記錄,直到這個(gè)事務(wù)提交,才會(huì)一次寫(xiě)入到binary log文件中

五、數(shù)據(jù)庫(kù)事務(wù)控制

1、默認(rèn)情況下,開(kāi)啟事務(wù)自動(dòng)提交功能。每執(zhí)行一個(gè)sql,都會(huì)對(duì)應(yīng)一個(gè)事務(wù)的提交

2、spring會(huì)將底層連接的自動(dòng)提交特性設(shè)置為false。使用手動(dòng)提交

六、事務(wù)的ACID特性

1、原子性(Atomicity)

事務(wù)中的所有操作作為一個(gè)整體像原子一樣不可分割,要么全部成功,要么全部失敗。

2、一致性(Consistency)

事務(wù)的執(zhí)行結(jié)果必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)到另一個(gè)一致性狀態(tài)。一致性狀態(tài)是指:1.系統(tǒng)的狀態(tài)滿足數(shù)據(jù)的完整性約束(主碼,參照完整性,check約束等) 2.系統(tǒng)的狀態(tài)反應(yīng)數(shù)據(jù)庫(kù)本應(yīng)描述的現(xiàn)實(shí)世界的真實(shí)狀態(tài),比如轉(zhuǎn)賬前后兩個(gè)賬戶的金額總和應(yīng)該保持不變。

3、隔離性(Isolation)

并發(fā)執(zhí)行的事務(wù)不會(huì)相互影響,其對(duì)數(shù)據(jù)庫(kù)的影響和它們串行執(zhí)行時(shí)一樣。比如多個(gè)用戶同時(shí)往一個(gè)賬戶轉(zhuǎn)賬,最后賬戶的結(jié)果應(yīng)該和他們按先后次序轉(zhuǎn)賬的結(jié)果一樣。

4、持久性(Durability)

事務(wù)一旦提交,其對(duì)數(shù)據(jù)庫(kù)的更新就是持久的。任何事務(wù)或系統(tǒng)故障都不會(huì)導(dǎo)致數(shù)據(jù)丟失。

5、redo log和undo log實(shí)現(xiàn)了原子性、一致性、持久性

6、鎖機(jī)制實(shí)現(xiàn)了隔離性

6.1、快照讀

讀取的是快照版本,也就是歷史版本。普通的SELECT就是快照讀

6.2、當(dāng)前讀

讀取的是最新版本。UPDATE、DELETE、INSERT、SELECT ...  LOCK IN SHARE MODE、SELECT ... FOR UPDATE是當(dāng)前讀。

6.3、鎖定讀

在一個(gè)事務(wù)中,標(biāo)準(zhǔn)的SELECT語(yǔ)句是不會(huì)加鎖,但是有兩種情況例外。SELECT ... LOCK IN SHARE MODE 和 SELECT ... FOR UPDATE。

SELECT ... LOCK IN SHARE MODE

給記錄假設(shè)共享鎖,這樣一來(lái)的話,其它事務(wù)只能讀不能修改,直到當(dāng)前事務(wù)提交

SELECT ... FOR UPDATE

給索引記錄加鎖,這種情況下跟UPDATE的加鎖情況是一樣的

6.4、一致性非鎖定讀

consistent read(一致性讀),InnoDB用多版本來(lái)提供查詢數(shù)據(jù)庫(kù)在某個(gè)時(shí)間點(diǎn)的快照。如果隔離級(jí)別是REPEATABLE READ,那么在同一個(gè)事務(wù)中的所有一致性讀都讀的是事務(wù)中第一個(gè)這樣的讀讀到的快照;如果是READ COMMITTED,那么一個(gè)事務(wù)中的每一個(gè)一致性讀都會(huì)讀到它自己刷新的快照版本。Consistent read(一致性讀)是READ COMMITTED和REPEATABLE READ隔離級(jí)別下普通SELECT語(yǔ)句默認(rèn)的模式。一致性讀不會(huì)給它所訪問(wèn)的表加任何形式的鎖,因此其它事務(wù)可以同時(shí)并發(fā)的修改它們。

以上就是怎么深入分析MySQL數(shù)據(jù)庫(kù)事務(wù),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買多久送多久。


當(dāng)前題目:怎么深入分析MySQL數(shù)據(jù)庫(kù)事務(wù)-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://weahome.cn/article/csschs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部