最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql、oracle默認事務(wù)隔離級別的說明

 更新時間:2021年01月18日 17:08:35   作者:劍海風(fēng)云  
這篇文章主要介紹了mysql、oracle默認事務(wù)隔離級別的說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.事務(wù)的特性(ACID)

(1)原子性(Atomicity)。事務(wù)中所涉及的程序?qū)?shù)據(jù)庫的修改操作要么全部成功,要么全部失敗。

(2)一致性(Consistency)。事務(wù)執(zhí)行前和執(zhí)行后來源和去向保持平衡。

(3)隔離性(Isolation)。并發(fā)時每個事務(wù)是隔離的,相互不影響。

(4)持久性(Durubility)。一旦事務(wù)成功提交,應(yīng)該保證數(shù)據(jù)的完整存在。

2.事務(wù)隔離級別

(1)read uncommitted 未提交讀

所有事務(wù)都可以看到?jīng)]有提交事務(wù)的數(shù)據(jù)。

(2)read committed 提交讀

事務(wù)成功提交后才可以被查詢到。

(3)repeatable 重復(fù)讀

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

(4)Serializable可串行化

強制的進行排序,在每個讀讀數(shù)據(jù)行上添加共享鎖。會導(dǎo)致大量超時現(xiàn)象和鎖競爭。

MySQL

mysql默認的事務(wù)處理級別是'REPEATABLE-READ',也就是可重復(fù)讀

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

select @@tx_isolation;

2.查看系統(tǒng)當前隔離級別

select @@global.tx_isolation;

3.設(shè)置當前會話隔離級別

set session transaction isolatin level repeatable read;

4.設(shè)置系統(tǒng)當前隔離級別

set global transaction isolation level repeatable read;

Oracle

oracle數(shù)據(jù)庫支持READ COMMITTED 和 SERIALIZABLE這兩種事務(wù)隔離級別。

默認系統(tǒng)事務(wù)隔離級別是READ COMMITTED,也就是讀已提交

1.查看系統(tǒng)默認事務(wù)隔離級別,也是當前會話隔離級別

--首先創(chuàng)建一個事務(wù)

declare
 trans_id Varchar2(100);
 begin
 trans_id := dbms_transaction.local_transaction_id( TRUE );
 end; 

--查看事務(wù)隔離級別

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');

補充:SQLserver鎖和事務(wù)隔離級別

隔離級別

隔離級別 臟讀 不可重復(fù)讀 幻象 說明
未提交讀(read uncommitted) 如果其他事務(wù)更新,不管是否提交,立即執(zhí)行
提交讀(read committed默認) 讀取提交過的數(shù)據(jù)。如果其他事務(wù)更新沒提交,則等待
可重復(fù)讀(repeatable read) 查詢期間,不允許其他事務(wù)update
可串行讀(serializable) 查詢期間,不允許其他事務(wù)insert或delete
請求模式 IS S U IX SIX X
意向共享(IS)
共享(S)
更新(U)
意向排它(IX)
與意向排它共享(SIX)
排它(X)

共享鎖:為了共享讀(select),如果存在事務(wù)(一個或多個)擁有對表中數(shù)據(jù)(關(guān)于鎖數(shù)據(jù)的多少,視鎖的粒度而定)的共享鎖,不允許對鎖定的數(shù)據(jù)進行更新(update)

排他鎖:只能有一個,其他的事務(wù)就不能對鎖定的數(shù)據(jù)獲取共享鎖和排他鎖(即排他鎖與共享鎖不能兼容,更多信息請查看鎖兼容性),在此特別強調(diào)一下 鎖定的數(shù)據(jù)。

鎖與隔離級別

類型1

① READUNCOMMITTED:不發(fā)出鎖

② READCOMMITTED:發(fā)出共享鎖,保持到讀取結(jié)束

③ REPEATABLEREAD:發(fā)出共享鎖,保持到事務(wù)結(jié)束

④ SERIALIZABLE:發(fā)出共享鎖,保持到事務(wù)結(jié)束

類型2

① NOLOCK:不發(fā)出鎖。等同于READUNCOMMITTED

② HOLDLOCK:發(fā)出共享鎖,保持到事務(wù)結(jié)束。等同于SERIALIZABLE

③ XLOCK:發(fā)出排他鎖,保持到事務(wù)結(jié)束。

④ UPDLOCK:發(fā)出更新鎖,保持到事務(wù)事務(wù)結(jié)束。(更新鎖:不阻塞別的事物,允許別的事物讀數(shù)據(jù)(即更新鎖可與共享鎖兼容),但他確保自上次讀取數(shù)據(jù)后數(shù)據(jù)沒有被更新)

⑤ READPAST:發(fā)出共享鎖,但跳過鎖定行,它不會被阻塞。適用條件:提交讀的隔離級別,行級鎖,select語句中。

類型3

① ROWLOCK:行級鎖

② PAGLOCK:頁級鎖

③ TABLOCK:表鎖

④ TABLOCKX:表排他鎖

在SELECT語句中使用XLOCK并不能阻止讀。這是因為SQL SERVER在讀提交隔離級別上有一種特殊的優(yōu)化,即檢查行是否已被修改,如果未被修改則忽略XLOCK。因為在讀提交隔離級別上這確實是可以接受的。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Mysql刪除幾億條數(shù)據(jù)表中的部分數(shù)據(jù)的方法實現(xiàn)

    Mysql刪除幾億條數(shù)據(jù)表中的部分數(shù)據(jù)的方法實現(xiàn)

    在MySQL中刪除一個大表中的數(shù)據(jù)時,需要特別注意操作的性能和對系統(tǒng)的影響,本文主要介紹了Mysql刪除幾億條數(shù)據(jù)表中的部分數(shù)據(jù)的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • MySQL單表多關(guān)鍵字模糊查詢的實現(xiàn)方法

    MySQL單表多關(guān)鍵字模糊查詢的實現(xiàn)方法

    MySQL單表多關(guān)鍵字模糊查詢實現(xiàn)方法是很多人都非常想知道的一個問題,那么,究竟采用什么方法,才能實現(xiàn)MySQL單表多關(guān)鍵字模糊查詢呢?
    2011-03-03
  • mysql數(shù)據(jù)庫id主鍵自增加刪除后不連續(xù)如何解決

    mysql數(shù)據(jù)庫id主鍵自增加刪除后不連續(xù)如何解決

    這篇文章主要介紹了mysql數(shù)據(jù)庫id主鍵自增加刪除后不連續(xù)的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Mysql安裝注意事項、安裝失敗的五個原因分析

    Mysql安裝注意事項、安裝失敗的五個原因分析

    這篇文章主要介紹了Mysql安裝注意事項、安裝失敗的五個原因分析,需要的朋友可以參考下
    2016-04-04
  • 解析mysql中:單表distinct、多表group by查詢?nèi)コ貜?fù)記錄

    解析mysql中:單表distinct、多表group by查詢?nèi)コ貜?fù)記錄

    本篇文章是對mysql中的單表distinct、多表group by查詢?nèi)コ貜?fù)記錄進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql 8.0.18.zip安裝配置方法圖文教程(windows 64位)

    mysql 8.0.18.zip安裝配置方法圖文教程(windows 64位)

    這篇文章主要為大家詳細介紹了mysql 8.0.18.zip安裝配置方法圖文教程,以及卸載以前數(shù)據(jù)庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • MySQL主從切換的超詳細步驟

    MySQL主從切換的超詳細步驟

    一般來說在客戶的生產(chǎn)環(huán)境,每隔一段實踐就需要進行MySQL數(shù)據(jù)庫的功能演練,主從切換,數(shù)據(jù)同步,數(shù)據(jù)備份等,下面這篇文章主要給大家介紹了關(guān)于MySQL主從切換的超詳細步驟,需要的朋友可以參考下
    2022-06-06
  • mysql占用CPU過高的解決辦法(添加索引)

    mysql占用CPU過高的解決辦法(添加索引)

    下面是MYSQL占用CPU高處理的一個例子,希望對遇到類似問題的朋友們有點啟發(fā)。一般來說MYQL占用CPU高,多半是數(shù)據(jù)庫查詢代碼問題,查詢數(shù)據(jù)庫過多。所以一方面要精簡代碼,另一方面最好對頻繁使用的代碼設(shè)置索引
    2013-03-03
  • MySQL SHOW STATUS語句的使用

    MySQL SHOW STATUS語句的使用

    這篇文章主要介紹了MySQL SHOW STATUS語句的使用,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12
  • MySQL Join算法原理解析

    MySQL Join算法原理解析

    本文詳細介紹了MySQL中常見的四種JOIN算法:嵌套循環(huán)連接(NLJ)、索引嵌套循環(huán)連接(INLJ)、塊嵌套循環(huán)連接(BNLJ)和基于哈希的連接(HashJoin),每種算法都有其適用場景和性能特點,感興趣的朋友一起看看吧
    2025-02-02

最新評論

汪清县| 凭祥市| 威远县| 会昌县| 镇坪县| 文水县| 齐齐哈尔市| 屏山县| 高要市| 天柱县| 柳林县| 镇雄县| 平顶山市| 荆门市| 临汾市| 青川县| 灵璧县| 尖扎县| 乐平市| 宁夏| 武威市| 澎湖县| 灵寿县| 临澧县| 景东| 肥城市| 东丽区| 永新县| 怀仁县| 太湖县| 大兴区| 辰溪县| 长顺县| 都兰县| 三河市| 且末县| 莒南县| 松江区| 丹东市| 班戈县| 合水县|