mysql、oracle默認事務隔離級別

1.事務的特性(ACID)mysql

(1)原子性(Atomicity)。事務中所涉及的程序對數據庫的修改操做要麼所有成功,要麼所有失敗。sql

(2)一致性(Consistency)。事務執行前和執行後來源和去向保持平衡。數據庫

(3)隔離性(Isolation)。併發時每一個事務是隔離的,相互不影響。session

(4)持久性(Durubility)。一旦事務成功提交,應該保證數據的完整存在。併發

2.事務隔離級別oracle

(1)read uncommitted 未提交讀.net

全部事務均可以看到沒有提交事務的數據。blog

(2)read committed 提交讀排序

事務成功提交後才能夠被查詢到。事務

(3)repeatable 重複讀

同一個事務多個實例讀取數據時,可能將未提交的記錄查詢出來,而出現幻讀。mysql默認級別

(4)Serializable可串行化

強制的進行排序,在每一個讀讀數據行上添加共享鎖。會致使大量超時現象和鎖競爭。


MySQL

mysql默認的事務處理級別是'REPEATABLE-READ',也就是可重複讀

1.查看當前會話隔離級別

select @@tx_isolation;

2.查看系統當前隔離級別

select @@global.tx_isolation;

3.設置當前會話隔離級別

set session transaction isolatin level repeatable read;

4.設置系統當前隔離級別

set global transaction isolation level repeatable read;

Oracle

oracle數據庫支持READ COMMITTED 和 SERIALIZABLE這兩種事務隔離級別。

默認系統事務隔離級別是READ COMMITTED,也就是讀已提交

1.查看系統默認事務隔離級別,也是當前會話隔離級別

--首先建立一個事務
declare
     trans_id Varchar2(100);
  begin
     trans_id := dbms_transaction.local_transaction_id( TRUE );
  end; 
--查看事務隔離級別

SELECT s.sid, s.serial#,

  CASE BITAND(t.flag, POWER(2, 28))     WHEN 0 THEN 'READ COMMITTED'     ELSE 'SERIALIZABLE'   END AS isolation_level FROM v$transaction t JOIN v$session s ON t.addr = s.taddr AND s.sid = sys_context('USERENV', 'SID'); ---------------------  做者:劍海風雲  來源:CSDN  原文:https://blog.csdn.net/nanxiaotao/article/details/80412196  版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索