很經典的mysql的幻讀解釋


http://blog.sina.com.cn/s/blog_499740cb0100ugs7.html

上述鏈接很經典的解釋了mysql的mvcc為什么是部分解決了幻讀的問題。

同時我需要理解的是,在業務邏輯中,事務是可以分散在業務代碼里面的,並不是說一條語句寫出。比如,我們啟動了一個事務,start transaction。先獲取數據庫中的數據,然后在業務中判斷該條件是否符合自己的業務邏輯,如果是的話,那么就可以插入一部分數據。但是這個時候可能也有別的數據插入進來了,產生了沖突,導致當前的數據插入不成功。形成怪異的現象。所以這個時候select需要使用lock In share model。這樣就可以使用next-key技術啟動事務。可以保證獲取的信息是當前讀的數據,而不是快照讀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM