1. 程式人生 > >事務特性和讀寫問題

事務特性和讀寫問題

事務有四大特性---------------原子性,一致性,隔離性,永續性。

其中的讀寫問題是發生在隔離性這一特性上。

什麼問題呢?

讀問題

  --------髒讀,不可重複讀,幻讀

什麼是髒讀?

B事務update 一個數據 未提交 ,卻可以在A事務中查詢到變化  

怎麼解決?

設定 A B事務隔離級別 為 READ COMMITTED(讀已提交),這一隔離級別解決了髒讀,但卻帶來了不可重複讀問題,怎麼解決?;

設定 A B事務隔離級別 為 repeatable read(可重複讀) ,這一隔離級別會帶來幻讀問題,怎麼解決?

設定 A B事務隔離級別為 序列行 ,可解決 髒讀,不可重複讀,幻讀,但效率低,因為 從 start transaction 開始 只要一個事務 沒有commit 另一個事務就不能開始;

寫問題

丟失更新

怎麼解決?

    ---悲觀鎖

  ----樂觀鎖

  可參考上一篇 CAS(樂觀鎖)!