邏輯工作單元遵循一系列(ACID)規則則稱為事務。
原子性:保證事務是一系列的運作,如果中間過程有一個不成功則全部回滾,全部成功則成功。保證了事務的原則性。
一致性:一致性指的是比如A向B轉100塊錢,不可能A少了100,結果B卻沒得到100。要么A少錢B多錢,要么A不少,B不多。
隔離性:當一個事務在運行過程中,別的事務影響不到該事務,及此事務也不會影響別的事務,這稱為隔離性。
持久性:保證數據成功之后是持久存在的,而不是像內存一樣。
事務的隔離級別:
事務隔離級別 臟讀 不可重復讀 幻讀
讀未提交(read-uncommitted) 是 是 是
不可重復讀(read-committed) 否 是 是
可重復讀(repeatable-read) 否 否 是
串行化(serializable) 否 否 否
相對來說這個順序是:
1.最不安全,4.最安全
1.性能最高 4.性能最低
Mysql的默認級別是:repeatable-READ
Oracle的默認級別是:read-COMMITTED
設置隔離級別的兩種寫法:
1. SET GLOBAL TRANSACTION ISOLATION LEVEL 隔離級別
2. SET tx_isolation= 隔離級別
第一種方式不需要 ‘-’ 否則不會執行成功。 第二種方式必須有‘-’ ,否則不會執行成功
查看事務的隔離級別:
SELECT @@tx_isolation;