mysql 事務管理(高階) 待續

2021-09-12 19:29:56 字數 913 閱讀 8560

請口述以下問題:

什麼是事務到特性,具體說說你到理解

請舉乙個案例描述為什麼要用到事務**賬)

事務的隔離級別

待續。。。

a->b(a給b轉賬100)

正常mysql流程:

a賬戶b賬戶

a-100

b+100

可能情況:

情況a賬戶b賬戶

第一種a-100

b+100

第二種a-100

b第三種

ab+100

第四種a

b當資料庫上有多個事務同時執行的時候,就可能出現髒讀(dirty read)、不可重複讀(non-repeatable read)、幻讀(phantom read)的問題,為了解決這些問題,就有了「隔離級別」的概念。

sql標準的事務隔離級別包括:讀未提交(read uncommitted)、讀提交(read committed)、可重複讀(repeatable read)和序列化(serializable )

讀未提交是指,乙個事務還沒提交時,它做的變更就能被別的事務看到。事務沒提交,做等變更別等事務能看到讀提交是指,乙個事務提交之後,它做的變更才會被其他事務看到。事務提交了,它做的變更別的事務才能看到可重複讀是指,乙個事務執行過程中看到的資料,總是跟這個事務在啟動時看到的資料是一致的。當然在可重複讀隔離級別下,未提交變更對其他事務也是不可見的。

序列化,顧名思義是對於同一行記錄,「寫」會加「寫鎖」,「讀」會加「讀鎖」。當出現讀寫鎖衝突的時候,後訪問的事務必須等前乙個事務執行完成,才能繼續執行。讀也加鎖啊寫也加鎖,讀寫鎖衝突,後面的事務等前面事務執行完成再執行,一串

隔離得越嚴實,效率就會越低。需要找乙個平衡點。

mysql 事務管理(高階) 待續

請口述以下問題 什麼是事務到特性,具體說說你到理解 請舉乙個案例描述為什麼要用到事務 賬 事務的隔離級別 待續。a b a給b轉賬100 正常mysql流程 a賬戶b賬戶 a 100 b 100 可能情況 情況a賬戶b賬戶 第一種a 100 b 100 第二種a 100 b第三種 ab 100 第四...

mysql 事務管理(高階) 待續

請口述以下問題 什麼是事務到特性,具體說說你到理解 請舉乙個案例描述為什麼要用到事務 賬 事務的隔離級別 待續。a b a給b轉賬100 正常mysql流程 a賬戶b賬戶 a 100 b 100 可能情況 情況a賬戶b賬戶 第一種a 100 b 100 第二種a 100 b第三種 ab 100 第四...

mysql事務管理

事務 由多個sql語句組成 這些sql作為乙個整體不可分割,如果其中一條sql不能執行,那麼整個單元會回滾,只有所有sql語句都成功執行才能說這個事務被成功的執行了 mysql的儲存引擎中innodb bdb支援事務 每個事務的處理都滿足acid屬性 1 原子性 事務被看成乙個不可分割的單元 2 一...