請口述以下問題:
什麼是事務到特性,具體說說你到理解
請舉乙個案例描述為什麼要用到事務**賬)
事務的隔離級別
待續。。。
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 一...