Oracle vs Galera Cluster 所支援的交易隔離級別
Oracle只支援read commited和serializable交易隔離級別,行鎖是在行上加標記,不會造成鎖升級。
SET TRANSACTION
ISOLATION LEVEL {SERIALIZABLE | READ COMMITTED}
[NAME string];
string:交易名稱
使用方式
SQL語法示範
將交易隔離等級設定為序列化,預設為READ COMMITTED
set transaction isolation level serializable;
可序列化 (最高的等級,使交易完全與其他交易隔離)
簡單地說,seriaizabe就是使交易看起來像是一個接著一個地順序地執行。
僅僅能看見在本交易開始前由其它交易提交的更改和在本交易中所做的更改。
保證不會出現非重複讀和幻像。
Seriaizabe隔離級別提供了read-ony交易所提供的讀一致性(交易級的讀一致性),同時又允許DM操作。
如果有在seriaizabe交易開始時未提交的交易在seriaizabe交易結束之前修改了seriaizabe交易將要修改的行並進行了提交,則seriaizabe交易不會讀到這些變更,因此發生無法序列化訪問的錯誤。
Galera Cluster
SNAPSHOT-ISOLATION ( between REPEATABLE-READ and SERIALIZABLE )
MySQL Cluster
The NDBCLUSTER storage engine supports only the READ COMMITTED transaction isolation level.
MySQL Cluster
The NDBCLUSTER storage engine supports only the READ COMMITTED transaction isolation level.
沒有留言:
張貼留言