成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊數(shù)據(jù)庫(kù)的事務(wù)隔離級(jí)別

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)的多種事務(wù)隔離級(jí)別是想為應(yīng)用開發(fā)者提供不同的并發(fā)控制,從而適應(yīng)各種不同的應(yīng)用應(yīng)用場(chǎng)景。這在T/S架構(gòu)流行的80/90年代應(yīng)用廣泛。那時(shí)候所有的計(jì)算都只能在主機(jī)或者小型機(jī)上完成,因此數(shù)據(jù)庫(kù)提供的這個(gè)功能可以大大簡(jiǎn)化應(yīng)用開發(fā)。

前幾天一個(gè)金融行業(yè)的朋友和我討論數(shù)據(jù)庫(kù)選型的事情,他們?cè)谶x擇分布式數(shù)據(jù)庫(kù)的時(shí)候發(fā)現(xiàn)這些數(shù)據(jù)庫(kù)支持的事務(wù)隔離級(jí)別與Oracle有較大差異,有位領(lǐng)導(dǎo)認(rèn)為對(duì)事務(wù)隔離級(jí)別的支持能力說(shuō)明了數(shù)據(jù)庫(kù)在并發(fā)處理方面的能力,因此要在選型中占有比較高的分值,甚至要在較高事務(wù)隔離級(jí)別下測(cè)試數(shù)據(jù)庫(kù)的并發(fā)性能。他對(duì)此持不同的看法。

數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別的概念最早是在1981年由IBM的Jim Gray等人提出的,他們?cè)谡撐摹禩he Notions of Consistency and Predicate Locks in a Database System》中定義了四種隔離級(jí)別,分別是:

  • 讀未提交(Read uncommitted):最低的隔離級(jí)別,允許一個(gè)事務(wù)讀取另一個(gè)未提交事務(wù)的數(shù)據(jù),可能導(dǎo)致臟讀、不可重復(fù)讀、幻讀等問題。
  • 讀提交(Read committed):目前被應(yīng)用最為廣泛的使用的事務(wù)隔離級(jí)別,只允許一個(gè)事務(wù)讀取另一個(gè)已提交事務(wù)的數(shù)據(jù),可以避免臟讀,但不能避免不可重復(fù)讀、幻讀等問題。
  • 可重復(fù)讀(Repeatable read):較高的隔離級(jí)別,保證一個(gè)事務(wù)在執(zhí)行過(guò)程中對(duì)同一數(shù)據(jù)的多次讀取結(jié)果都是一致的,可以避免臟讀、不可重復(fù)讀,但不一定能避免幻讀等問題。
  • 串行化(Serializable):最高的隔離級(jí)別,要求事務(wù)串行執(zhí)行,不允許并發(fā)訪問和修改同一數(shù)據(jù),可以避免臟讀、不可重復(fù)讀、幻讀等所有問題,但性能最差。

數(shù)據(jù)庫(kù)的多種事務(wù)隔離級(jí)別是想為應(yīng)用開發(fā)者提供不同的并發(fā)控制,從而適應(yīng)各種不同的應(yīng)用應(yīng)用場(chǎng)景。這在T/S架構(gòu)流行的80/90年代應(yīng)用廣泛。那時(shí)候所有的計(jì)算都只能在主機(jī)或者小型機(jī)上完成,因此數(shù)據(jù)庫(kù)提供的這個(gè)功能可以大大簡(jiǎn)化應(yīng)用開發(fā)。C/S架構(gòu)出現(xiàn)后,特別是后來(lái)的三層架構(gòu)大行其道的時(shí)代之后,Read Committed變成了最為常用的事務(wù)隔離級(jí)別,其他事務(wù)隔離級(jí)別大多數(shù)都基本上不用了。比Read Committed更高的事務(wù)隔離級(jí)別被前置到應(yīng)用前端或者中間層來(lái)實(shí)現(xiàn)了。

更高的事務(wù)隔離級(jí)別的最著名的例子就是分頁(yè)查詢,在RC隔離級(jí)別下,哪怕是在一個(gè)事務(wù)中,我們?cè)谇岸朔猪?yè)查詢同一個(gè)數(shù)據(jù)時(shí),都會(huì)看到“臟數(shù)據(jù)”,因?yàn)檫@些數(shù)據(jù)在我們讀的時(shí)候也會(huì)有人同時(shí)在修改和寫入新的滿足條件的數(shù)據(jù)。對(duì)于這種方式的處理方法一般來(lái)說(shuō)就是容忍“臟數(shù)據(jù)”,互聯(lián)網(wǎng)應(yīng)用一般都是這樣處理的。而對(duì)于數(shù)據(jù)一致性要求很高的財(cái)務(wù)系統(tǒng),則一般采用在中間層緩存數(shù)據(jù)或者使用全局臨時(shí)表緩存數(shù)據(jù)的方式來(lái)確保數(shù)據(jù)的一致性。

現(xiàn)在的應(yīng)用較少的通過(guò)事務(wù)隔離級(jí)別來(lái)處理這種高一致性要求的數(shù)據(jù)的主要原因還是因?yàn)榧夹g(shù)發(fā)展了,多層架構(gòu)讓中間層有了更為強(qiáng)大的可擴(kuò)展的處理能力,而數(shù)據(jù)庫(kù)本身也因?yàn)橛布陌l(fā)展能夠承受大量的臨時(shí)表存儲(chǔ)數(shù)據(jù)的需求。這些應(yīng)用層實(shí)現(xiàn)的更高事務(wù)隔離級(jí)別的應(yīng)用需求往往比通過(guò)數(shù)據(jù)庫(kù)實(shí)現(xiàn)有更高的靈活性,因此比RC更高的事務(wù)隔離級(jí)別實(shí)際上在我們的大多數(shù)應(yīng)用中已經(jīng)早就沒有人使用了。

可能有朋友要問,為什么MySQL的默認(rèn)事務(wù)隔離級(jí)別不是RC而是RR呢?這和MySQL數(shù)據(jù)庫(kù)的歷史有關(guān),MySQL數(shù)據(jù)庫(kù)因?yàn)樵缙诘腂INLOG復(fù)制不支持RAW格式的問題而必須選擇RR,如果使用RC無(wú)法確保復(fù)制數(shù)據(jù)的一致性。但是用了RR這種事務(wù)隔離級(jí)別,又會(huì)引起數(shù)據(jù)庫(kù)的并發(fā)性能受到影響,因此MySQL引入了GAP LOCK這種特殊的鎖機(jī)制,來(lái)降低RR對(duì)數(shù)據(jù)庫(kù)并發(fā)的性能影響。哪怕是引入了GAP LOCK,在RR隔離級(jí)別下,對(duì)于SELECT … FOR UPDATE的操作,RR隔離級(jí)別也會(huì)比RC有更多的鎖阻塞,因此我們建議MySQL用戶如果BINLOG復(fù)制使用能夠RAW的情況下,還是把默認(rèn)的事務(wù)隔離級(jí)別設(shè)置為RC。

回到文章頭上的那個(gè)金融交易系統(tǒng)的例子,這個(gè)例子是十分典型的RC事務(wù)隔離級(jí)別就是最佳隔離級(jí)別的例子,在此種應(yīng)用場(chǎng)景下,還把事務(wù)隔離級(jí)別看作是數(shù)據(jù)庫(kù)選型的重要因素,就有點(diǎn)不太合適了。

分布式數(shù)據(jù)庫(kù)最早的初衷就是提高并發(fā)交易的能力,因此它們?cè)谳^高事務(wù)隔離級(jí)別方面天然就處于劣勢(shì)的,用這種因素去選型,肯定就與選型的初衷背道而馳了。實(shí)際上與前面所說(shuō)的一樣,目前我們的應(yīng)用開發(fā)大多數(shù)都基于RC事務(wù)隔離級(jí)別。更高的事務(wù)隔離級(jí)別的應(yīng)用需求大多數(shù)都在應(yīng)用中去處理了,或者說(shuō)哪怕要用數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn),這種應(yīng)用場(chǎng)景應(yīng)該也不會(huì)是有很高并發(fā)的。因此在較高事務(wù)隔離級(jí)別下測(cè)試并發(fā)性能對(duì)于大多數(shù)用戶來(lái)說(shuō)確實(shí)是沒有太大必要了。

責(zé)任編輯:武曉燕 來(lái)源: 白鱔的洞穴
相關(guān)推薦

2020-03-05 09:33:15

數(shù)據(jù)庫(kù)事務(wù)隔離事務(wù)

2018-07-17 10:58:45

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別

2018-07-20 11:10:21

數(shù)據(jù)庫(kù)事務(wù)隔離性

2018-10-17 09:55:06

數(shù)據(jù)庫(kù)隔離級(jí)別MySQL

2025-02-08 12:05:44

MySQLMyISAMInnoDB

2023-06-01 07:37:48

級(jí)別事務(wù)調(diào)度

2018-01-03 08:52:27

MySQL數(shù)據(jù)庫(kù)級(jí)別

2018-09-06 14:53:39

數(shù)據(jù)庫(kù)事務(wù)隔離隔離級(jí)別

2018-12-19 16:46:38

MySQL事務(wù)隔離數(shù)據(jù)庫(kù)

2010-11-19 16:13:06

oracle事務(wù)隔離級(jí)

2009-06-29 17:54:47

Spring事務(wù)隔離

2021-07-26 10:28:13

MySQL事務(wù)隔離

2024-04-26 09:17:20

MySQL事務(wù)隔離

2021-08-04 13:19:42

MySQL 事務(wù)隔離

2022-12-14 08:00:00

數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)隔離

2021-01-18 11:49:26

面試事務(wù)隔離

2024-12-02 08:37:04

2025-04-28 09:27:26

2022-09-13 13:49:05

數(shù)據(jù)庫(kù)隔離

2025-03-03 08:20:00

MySQL事務(wù)隔離數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美久久久久久久 | 黄瓜av| 国产精品亚洲成在人线 | 97av在线 | 欧美国产精品一区二区三区 | 成人小视频在线观看 | 日韩一区二区三区av | 国产精品欧美一区喷水 | 国产精品久久久久久久三级 | 久久久久亚洲精品中文字幕 | 久久久久久99 | 亚洲巨乳自拍在线视频 | 在线中文字幕亚洲 | 中文字幕av在线一二三区 | 最新免费av网站 | 粉嫩国产精品一区二区在线观看 | 高清成人免费视频 | 欧美又大粗又爽又黄大片视频 | 殴美黄色录像 | 日本黄色免费大片 | 国产欧美在线一区 | 国产精品欧美日韩 | 亚洲va中文字幕 | 免费观看黄 | 欧美精品一区二区三区在线 | 嫩草最新网址 | 国产成人精品免费视频大全最热 | a在线免费观看视频 | 七七婷婷婷婷精品国产 | 日本涩涩网 | 黑人巨大精品欧美一区二区免费 | 91精品久久久久久久 | 午夜激情在线视频 | 欧美一区二区视频 | 亚洲美女视频 | 中文字幕国产第一页 | 亚洲a人| 韩国av一区二区 | 黄色国产在线播放 | www.久久99 | 日韩精品免费看 |