MySQL事务的可串行化
生活随笔
收集整理的這篇文章主要介紹了
MySQL事务的可串行化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
可串行化——SERIALIZABLE
事務的最高級別,在每個讀的數據行上,加上鎖,使之不可能相互沖突,因此,會導致大量的超時現象
設置b賬戶,事務的隔離級別
B賬戶,首先,將b賬戶的隔離級別設置為SERIALIZABLE
可以看出,b賬戶的事務隔離級別設置為了SERIALIZABLE
演示可串行化
B賬戶,開啟一個事務,查詢各個賬戶的余額
A賬戶,開啟一個事務,在事務中執行插入操作
可以看出,當b賬戶正在事務中,查詢余額信息時,a賬戶中的操作是不能立即執行的
提交事務
B賬戶,執行完查詢余額,提交當前事務
A賬戶,當b賬戶中的事務提交之后,a賬戶中的添加操作,才能執行成功
查詢余額
執行成功
可以看出,如果一個事務,使用了SERIALIZABLE——可串行化隔離級別時,在這個事務沒有被提交之前
其他的線程,只能等到當前操作完成之后,才能進行操作,這樣會非常耗時,而且,影響數據庫的性能,通常情況下,不會使用這種隔離級別
總結
以上是生活随笔為你收集整理的MySQL事务的可串行化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL事务的幻读
- 下一篇: MySQL定义条件