為什麼要使用MVCC技術?
數據庫在不同的隔離級別下需要解決
不可重複讀 和 幻讀 的問題。其實通過鎖的方式就可以解決,但是鎖的問題是性能太差。MVCC解決了這個問題,同時實現了高性能。MVCC在Mysql中的實現:
MVCC解決了幻讀問題了嗎?
答案是沒有。mvcc只是解決了一部分幻讀的問題,也就是幻讀中的讀問題(因為是快照讀)。
MySQL在RR級別下是通過gap lock解決了當前讀情況下的幻讀問題。
事務的隔離級別只涉及到了讀的問題。並沒有涉及到寫的問題。
閱讀更多 十萬個為神麼 的文章