日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
高效應(yīng)對高并發(fā):數(shù)據(jù)庫事務(wù)設(shè)計精要 (高并發(fā)數(shù)據(jù)庫事務(wù)設(shè)計)

隨著互聯(lián)網(wǎng)的快速發(fā)展,越來越多的企業(yè)開始將業(yè)務(wù)向線上轉(zhuǎn)移,例如電商、在線旅游等等。這種轉(zhuǎn)移給數(shù)據(jù)庫帶來了前所未有的挑戰(zhàn),超高并發(fā)的訪問量、快速的數(shù)據(jù)變更等等,都使得數(shù)據(jù)庫的穩(wěn)定性、性能等方面的要求提高了很多。因此,對于數(shù)據(jù)庫事務(wù)設(shè)計的精要,也就成為了業(yè)內(nèi)人士關(guān)注的熱點。

創(chuàng)新互聯(lián)建站始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達10多年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營銷推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:樓梯護欄等企業(yè),備受客戶贊譽。

一、事務(wù)概念

在數(shù)據(jù)庫中,事務(wù)(Transaction)是指一組在邏輯上被看成是一個整體,要么全部執(zhí)行,要么都不執(zhí)行的操作。例如,在一個銀行轉(zhuǎn)賬的操作中,涉及到從一個賬戶中扣除一定金額,同時向另一個賬戶中增加相應(yīng)的金額,這兩個操作的執(zhí)行應(yīng)該是“不可分割”的。

二、事務(wù)特性

數(shù)據(jù)庫事務(wù)有四個特性,即原子性、一致性、隔離性和持久性。

1. 原子性(ACID的”A”)

原子性是指一個事務(wù)中包含的所有操作要么全部成功,要么全部失敗。事務(wù)的執(zhí)行結(jié)果不能部分提交,也不能部分成功。如果事務(wù)在執(zhí)行過程中發(fā)生了錯誤,那么整個事務(wù)都會被回滾到開始執(zhí)行時的狀態(tài)。

2. 一致性(ACID的”C”)

一致性指的是事務(wù)執(zhí)行前后,數(shù)據(jù)庫的狀態(tài)保持一致。事務(wù)所執(zhí)行的操作應(yīng)該滿足業(yè)務(wù)要求,例如在某個賬戶中存入一定金額,那么執(zhí)行完事務(wù)后,該賬戶的余額應(yīng)該與執(zhí)行前的余額相加得到。

3. 隔離性(ACID的”I”)

隔離性是指一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。同一個時間,多個事務(wù)在數(shù)據(jù)庫中同時進行,它們的執(zhí)行過程之間應(yīng)該互不干擾,即一個事務(wù)中所做的改變對其他事務(wù)來說不可見。

4. 持久性(ACID的”D”)

持久性是指一個事務(wù)執(zhí)行結(jié)束后,其結(jié)果應(yīng)該永久保存在數(shù)據(jù)庫中。確保在數(shù)據(jù)庫退出或者服務(wù)器崩潰等異常情況下,數(shù)據(jù)能夠得到恢復(fù)。

三、多個事務(wù)之間的并發(fā)

由于互聯(lián)網(wǎng)應(yīng)用的特殊性,很多時候會面對多個數(shù)據(jù)庫事務(wù)之間的并發(fā)。例如某個購物網(wǎng)站,有兩個用戶同時在下單,兩個事務(wù)都試圖向訂單表中插入一條記錄,那么就需要考慮這種并發(fā)下,事務(wù)的執(zhí)行效率與數(shù)據(jù)的一致性如何平衡。一般來說,數(shù)據(jù)庫系統(tǒng)中會采用鎖機制來解決并發(fā)問題。

1. 鎖的種類

共享鎖(Shared Lock):當(dāng)一個事務(wù)在讀一個數(shù)據(jù)時,使用共享鎖對數(shù)據(jù)進行加鎖,其他事務(wù)只能讀該數(shù)據(jù),不能進行修改操作。

排他鎖(Exclusive Lock):當(dāng)一個事務(wù)在修改一個數(shù)據(jù)時,使用排他鎖對數(shù)據(jù)進行加鎖,其他事務(wù)無法讀取或修改該數(shù)據(jù)。

2. 鎖的級別

事務(wù)的隔離級別是指在多個事務(wù)處理的同時,能否操作同一個數(shù)據(jù)。SQL標(biāo)準(zhǔn)定義了4個事務(wù)隔離級別:Read Uncommitted(讀未提交)、Read Committed(讀已提交)、Repeatable Read(可重復(fù)讀)和Serializable(可串行化)。這些級別從上到下逐步提高。事務(wù)的隔離級別越高,性能方面的開銷一般越大。

3. 并發(fā)帶來的問題

鎖雖然可以解決并發(fā)問題,但也會帶來一些問題。例如死鎖、饑餓等等。死鎖是指多個事務(wù)互相占有對方需要的資源,最終導(dǎo)致所有事務(wù)都無法繼續(xù)執(zhí)行。饑餓則是指某個事務(wù)因為無法取得必要的資源而一直無法執(zhí)行下去。

四、數(shù)據(jù)庫事務(wù)設(shè)計

1. 高并發(fā)下的性能問題

高并發(fā)下,系統(tǒng)的性能會變得很重要。為了保證系統(tǒng)的高性能,需要考慮以下因素:

優(yōu)化SQL語句,減少數(shù)據(jù)庫的無效讀取

增加緩存層,避免重復(fù)讀取

分庫分表,減少單個表的數(shù)據(jù)量

2. 事務(wù)的設(shè)計

為了保證事務(wù)的原子性、一致性、隔離性和持久性,需要注意以下幾點:

避免人為錯誤,例如在一個事務(wù)中修改了多個表,但只提交了部分修改,導(dǎo)致數(shù)據(jù)一致性問題

盡量采用較短的事務(wù),避免長時間占用數(shù)據(jù)庫資源

盡量先進行讀操作,避免對同一個數(shù)據(jù)進行多次更新

對于一些非常重要的事務(wù),可以采用事務(wù)超時機制,強制事務(wù)在一定時間內(nèi)執(zhí)行完畢。

五、

對于數(shù)據(jù)庫事務(wù)的設(shè)計,需要考慮多個方面,例如事務(wù)的原子性、一致性、隔離性和持久性、鎖機制的運用、事務(wù)的設(shè)計等等。要想在高并發(fā)下保證系統(tǒng)的高效穩(wěn)定運行,需要引入一些優(yōu)化手段,例如優(yōu)化SQL語句、增加緩存層、分庫分表等。只有在綜合考慮了這些方面之后,才能給用戶帶來更好的使用體驗。

相關(guān)問題拓展閱讀:

  • 關(guān)系型數(shù)據(jù)庫的局限性有哪些難以滿足高并發(fā)讀寫的需求

關(guān)系型數(shù)據(jù)庫的局限性有哪些難以滿足高并發(fā)讀寫的需求

隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,非關(guān)系型的數(shù)據(jù)庫現(xiàn)在成了一個極其熱門的新領(lǐng)域,非關(guān)系數(shù)據(jù)庫產(chǎn)品的發(fā)展非常迅速。而傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,例如:

1、High performance——對數(shù)據(jù)庫高并發(fā)讀寫的需求

Web2.0網(wǎng)站要根據(jù)用戶個性化信息來實時生成動態(tài)頁面和提供動態(tài)信息,所以基本上無法使用動態(tài)頁面靜態(tài)化技術(shù),因此數(shù)據(jù)庫并發(fā)負載非常高,往往要達到每秒上萬次讀寫請求。關(guān)系數(shù)據(jù)庫應(yīng)付上萬次SQL查詢還勉強頂?shù)米?,但是?yīng)付上萬次SQL寫數(shù)據(jù)請求,硬盤IO就已經(jīng)無法承受了。其實對于普通的BBS網(wǎng)站,往往也存在對高并發(fā)寫請求的需求,例如像JavaEye網(wǎng)站的實時統(tǒng)計在線用戶狀態(tài),記錄熱門帖子的點擊次數(shù),投票計數(shù)等,因此這是一個相當(dāng)普衡肢遍的需求。

2、Huge Storage——對海量數(shù)據(jù)的高效率存儲和訪問的需求

類似鎮(zhèn)租Facebook,twitter,F(xiàn)riendfeed這樣的SNS網(wǎng)站,每天用戶產(chǎn)生海量的用戶動態(tài),以Friendfeed為例,一個月就達到了2.5億條用戶動態(tài),對于關(guān)系數(shù)據(jù)庫來說,在一張2.5億條記錄的表里面進行SQL查詢,效率是極其低下乃至不可忍受的。再例如大型web網(wǎng)站的用戶登錄系統(tǒng),例如騰訊,盛大,動輒數(shù)以億計的帳號,關(guān)系數(shù)據(jù)庫也很難應(yīng)付。

3、High Scalability && High Availability——對數(shù)據(jù)庫的高可擴展性和高可用性的需求

在基于web的架構(gòu)當(dāng)中,數(shù)據(jù)庫是最難進行橫向擴展的,當(dāng)一個應(yīng)用系統(tǒng)的用戶量和訪問量與日俱增的時候,你的數(shù)據(jù)庫卻沒有辦法像web server和app server那樣簡單的通過添加更多的硬件和服務(wù)節(jié)點來擴展性能和負載能力。對于很多需要提供24小時不間斷服務(wù)的網(wǎng)站來說,對數(shù)據(jù)庫系統(tǒng)進行升級和擴展是非常痛苦的事情,往往需要停機維護和數(shù)據(jù)遷移,為什么數(shù)據(jù)庫不能通過不斷的添加服務(wù)器節(jié)點來實現(xiàn)擴展呢?

在上面提到的“三高”需求面前,關(guān)系數(shù)據(jù)庫遇到了難以克服的障礙,而對于web2.0網(wǎng)站來說,關(guān)系數(shù)據(jù)庫的很多主要特性卻往往無用武之地,例如:

1. 數(shù)據(jù)庫事務(wù)一致性需求

很多web實時系統(tǒng)并不要求嚴(yán)格的數(shù)據(jù)庫事務(wù),對讀一致性的要求很低,有些場合對寫一致性要求也不高。因此數(shù)據(jù)庫事務(wù)管理成了數(shù)據(jù)庫高負載下一個沉重的負擔(dān)。

2. 數(shù)據(jù)庫的寫實時性和讀實時性需求

對關(guān)系數(shù)據(jù)庫來說,插入一條數(shù)據(jù)之后立刻查詢,是肯定可以讀出來這條數(shù)據(jù)的,但是對于很多web應(yīng)用來說,并不要求這么高的實時性,比方說我(JavaEye的robbin)發(fā)一條消息之后,過幾秒乃至十幾秒之后,我的訂閱者才看到這條動態(tài)是完全可以接受的。

3、對復(fù)雜的SQL查詢,特別是多表關(guān)聯(lián)查詢的需求

任何大數(shù)據(jù)量的web系統(tǒng),都非常忌諱多個大表的關(guān)聯(lián)查詢,以及復(fù)雜的數(shù)據(jù)分析類型的復(fù)雜SQL報表查詢,特別是SNS類型的網(wǎng)站,從需求以及產(chǎn)品設(shè)計角度,就避免了這種情況的產(chǎn)生。往往更多的只是單表的主鍵查詢,以及單表的簡單條件分頁查詢,SQL的功能被極大的弱化了。

因此,關(guān)系數(shù)據(jù)庫在這些越來越多的應(yīng)用場景下顯得不那么合適了,為了解決這類問題的非關(guān)系數(shù)據(jù)庫應(yīng)運而生,現(xiàn)在這兩年,各種各樣非關(guān)系數(shù)據(jù)庫,特別是鍵值數(shù)據(jù)庫(Key-Value Store DB)風(fēng)起云涌,多得讓人眼花繚亂。前不久國外剛剛舉辦了NoSQL Conference,各路NoSQL數(shù)據(jù)庫紛紛亮相,加上未亮相但是名聲在外的,起碼有超過10個開源的NoSQLDB,例如:

Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,御攔兆Dynomite,HBase,CouchDB,Hypertable, Riak,Tin, Flare, Lightcloud, KiokuDB,Scalaris, Kai, ThruDB, ……

這些NoSQL數(shù)據(jù)庫,有的是用C/C++編寫的,有的是用Java編寫的,還有的是用Erlang編寫的,每個都有自己的獨到之處,看都看不過來了,我(robbin)也只能從中挑選一些比較有特色,看起來更有前景的產(chǎn)品學(xué)習(xí)和了解一下。

高并發(fā)數(shù)據(jù)庫事務(wù)設(shè)計的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于高并發(fā)數(shù)據(jù)庫事務(wù)設(shè)計,高效應(yīng)對高并發(fā):數(shù)據(jù)庫事務(wù)設(shè)計精要,關(guān)系型數(shù)據(jù)庫的局限性有哪些難以滿足高并發(fā)讀寫的需求的信息別忘了在本站進行查找喔。

成都網(wǎng)站設(shè)計制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設(shè)定制開發(fā)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)站設(shè)計服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開發(fā),營銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。


本文題目:高效應(yīng)對高并發(fā):數(shù)據(jù)庫事務(wù)設(shè)計精要 (高并發(fā)數(shù)據(jù)庫事務(wù)設(shè)計)
本文URL:http://m.5511xx.com/article/ccoppee.html