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 版權聲明:本文爲博主原創文章,轉載請附上博文連接!