




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫選擇策略什么是數(shù)據(jù)庫?“Adatabaseisanorganizedcollection
of
data”. --
Wikipedia簡(jiǎn)單地來說,數(shù)據(jù)庫就是對(duì)數(shù)據(jù)的管理業(yè)務(wù)中包括了對(duì)數(shù)據(jù)的增,刪,改,查等操作數(shù)據(jù)管理中包括用戶訪問權(quán)限,持久化,分布式等不同的方案選擇數(shù)據(jù)庫舉例用戶id用戶名密碼昵稱1Danna123456Helloworld2Wang888888WangBin3JackabcyuiLeonardo假設(shè)一個(gè)用戶管理系統(tǒng),它的數(shù)據(jù)庫至少應(yīng)該有以下幾個(gè)功能:保存這張用戶信息表能夠通過id,用戶名或昵稱查找到其對(duì)應(yīng)的所有信息。支持對(duì)密碼,昵稱的修改。支持對(duì)用戶的添加和刪除。盡量少的響應(yīng)時(shí)間盡量少的存儲(chǔ)空間數(shù)據(jù)庫舉例如果存在這樣一個(gè)超級(jí)數(shù)據(jù)庫,它可以存儲(chǔ)任意大小的數(shù)據(jù)以及數(shù)據(jù)之間的關(guān)系,同時(shí)提供了最快的增刪改查操作,那么它就能解決一切數(shù)據(jù)問題。然而理想是美好的,現(xiàn)實(shí)往往是殘酷的。我們不能沒有無窮的存儲(chǔ)空間,也沒有光速的響應(yīng)時(shí)間。我們有的僅僅是一臺(tái)500G磁盤,4G內(nèi)存I3
處理器電腦。如何選擇合適的數(shù)據(jù)庫?如何最優(yōu)化輸出的結(jié)果?基本問題分析數(shù)據(jù)怎么存?數(shù)據(jù)怎么查找?怎么修改數(shù)據(jù)?怎么添加和刪除數(shù)據(jù)?用戶id用戶名密碼昵稱1Danna123456Helloworld2Wang888888WangBin3JackabcyuiLeonardo假設(shè)一個(gè)用戶管理系統(tǒng),它的數(shù)據(jù)庫至少應(yīng)該有以下幾個(gè)功能:保存這張用戶信息表能夠通過id,用戶名或昵稱查找到其對(duì)應(yīng)的所有信息。支持對(duì)密碼,昵稱的修改。支持對(duì)用戶的添加和刪除。數(shù)據(jù)庫的基本分類針對(duì)面臨的一些問題,現(xiàn)有的數(shù)據(jù)庫往往有以下一些簡(jiǎn)單的性質(zhì)分類。數(shù)據(jù)怎么存?持久化存儲(chǔ),
內(nèi)存數(shù)據(jù)庫單機(jī),分布式數(shù)據(jù)怎么增刪改查?關(guān)系查找,key-value查找操作是否安全?事務(wù)一致性,最終一致性可用性故障了怎么恢復(fù)?大部分?jǐn)?shù)據(jù)庫都具有故障恢復(fù)功能。數(shù)據(jù)庫的基本分類用戶id
用戶名密碼昵稱1
Danna123456Helloworld2
Wang888888WangBin3
JackabcyuiLeonardo用戶id1{用戶名:Danna,,密碼:123456}2{用戶名:Wang,密碼:888888,昵稱:WangBin}3{用戶名:Jack,密碼:abcyui,郵箱:jack@}數(shù)據(jù)庫的基本分類事務(wù)A銀行轉(zhuǎn)賬B:A查詢當(dāng)前余額,A輸入轉(zhuǎn)賬數(shù)額,銀行從A賬戶刪除金額,銀行給B賬戶增加金額,B確認(rèn)金額增加。如果中間某一步出錯(cuò)了?如果同時(shí)兩個(gè)人在用同一個(gè)賬戶轉(zhuǎn)賬?事務(wù)保證了操作序列的完整執(zhí)行,在金融業(yè)務(wù)中尤為重要。一致性實(shí)時(shí)一致性,A微信發(fā)布了一張照片,同時(shí)他的所有好友都能看到。最終一致性,A微信發(fā)布了一張照片,其好友總會(huì)在未來某個(gè)時(shí)刻(明天)看到。實(shí)時(shí)一致性往往消耗計(jì)算資源,實(shí)際場(chǎng)景中會(huì)采用最終一致性進(jìn)行一定程度的妥協(xié)。常用數(shù)據(jù)庫介紹Mysql開源的關(guān)系型數(shù)據(jù)庫,至今最流行的開源關(guān)系型數(shù)據(jù)庫簡(jiǎn)單易用,擁有大量的第三方插件,社區(qū)活躍,文檔豐富。關(guān)系型數(shù)據(jù)庫支持快速的復(fù)雜查詢操作。支持完整的事務(wù)操作和較高的安全性。常用數(shù)據(jù)庫介紹Mongodb模式自由,可以自由地更具需要隨時(shí)修改文檔格式。支持海量數(shù)據(jù)的查詢和插入,支持完全索引自動(dòng)支持分片等分布式操作,支持故障恢復(fù)與備份,學(xué)習(xí)成本低需要注意的是,與mysql對(duì)比,其有以下幾點(diǎn)不同Mongo需要占用很大的空間來建立索引不支持事務(wù)操作,最終一致性社區(qū)尚不成熟,高安全級(jí)別無法保證常用數(shù)據(jù)庫介紹Mongodb模式自由,可以自由地更具需要隨時(shí)修改文檔格式。支持海量數(shù)據(jù)的查詢和插入,支持完全索引自動(dòng)支持分片等分布式操作,支持故障恢復(fù)與備份,學(xué)習(xí)成本低需要注意的是,與mysql對(duì)比,其有以下幾點(diǎn)不同Mongo需要占用很大的空間來建立索引不支持事務(wù)操作,最終一致性社區(qū)尚不成熟,高安全級(jí)無法保證id自由的存儲(chǔ)模式1{用戶名:Danna,,密碼:123456}2{用戶名:Wang,密碼:888888,昵稱:WangBin}3{用戶名:Jack,密碼:abcyui,郵箱:jack@}常用數(shù)據(jù)庫介紹Redis近年興起的內(nèi)存數(shù)據(jù)庫,數(shù)據(jù)在內(nèi)存之中保證了訪問的高效。Redis在保證訪問速度的同時(shí),也能夠進(jìn)行持久化存儲(chǔ)。本身是key-value的存儲(chǔ)形式,但是能夠支持很多的數(shù)據(jù)結(jié)構(gòu),如列表,字典。訪問速度非??欤∠噍^與mysql,
mongo其有以下的不同:數(shù)據(jù)在內(nèi)存是十分不可靠的,任何的重要數(shù)據(jù)都不應(yīng)該存儲(chǔ)在內(nèi)存數(shù)據(jù)庫中。不完整的事務(wù)實(shí)現(xiàn),不適合作為安全性高的場(chǎng)景。數(shù)據(jù)庫選擇策略是否有現(xiàn)有的數(shù)據(jù)庫滿足要求?具體什么問題構(gòu)成阻礙?業(yè)務(wù)需求復(fù)雜?拆分業(yè)務(wù),不同場(chǎng)景采用不同的數(shù)據(jù)庫。財(cái)務(wù)?事務(wù),mysql大量用戶數(shù)據(jù)?大量查詢,mongo超快速反應(yīng)?網(wǎng)站首頁,redis緩存問題較少見,無前人開路?在現(xiàn)有的開源基礎(chǔ)上進(jìn)行二次開發(fā)。豌豆莢Codis豆瓣BeansDb淘寶Oceanbase訪問量大?安全性要求高?實(shí)時(shí)一致性?數(shù)據(jù)庫實(shí)現(xiàn)成本多少?程序員們熟悉哪一個(gè)數(shù)據(jù)庫分布式?Mongo自動(dòng)支持分布式不確定業(yè)務(wù)模型?Mongo支持自由模型數(shù)據(jù)庫選擇案例分析考慮一個(gè)簡(jiǎn)單的社交網(wǎng)站案例,要求功能是用戶登錄,分享等功能。每秒同時(shí)在線人數(shù)(并發(fā)請(qǐng)求)大約為100人。用戶數(shù)據(jù)需要持久化存儲(chǔ),不能用內(nèi)存數(shù)據(jù)庫。用戶數(shù)據(jù)安全性不高,不要求事務(wù)性,可以使用Mongo查詢并發(fā)量100,較小,mysql(以2000估計(jì))與mongo(以5000估計(jì))均可使用業(yè)務(wù)較復(fù)雜,業(yè)務(wù)模型需要可擴(kuò)展,mongo修改更方便。綜合以上幾點(diǎn),我們建議使用Mongo作為數(shù)據(jù)庫。數(shù)據(jù)庫選擇案例分析考慮一個(gè)新聞網(wǎng)站,沒有用戶登錄與交互,僅需要展示新聞內(nèi)容,但是同時(shí)的用戶訪問量大約為10000人(每秒萬人訪問)。沒有用戶數(shù)據(jù),也沒有復(fù)雜的關(guān)系業(yè)務(wù)。訪問量極高,mongo,mysql均不適用。內(nèi)容單一,考慮內(nèi)存數(shù)據(jù)庫安全性要求低,內(nèi)存數(shù)據(jù)庫可以使用綜合以上四點(diǎn),我們建議使用redis等內(nèi)存數(shù)據(jù)庫。數(shù)據(jù)庫選擇案例分析考慮一個(gè)搶票服務(wù),功能為在某個(gè)時(shí)刻為大量用戶進(jìn)行搶票服務(wù)。要求能夠在10s內(nèi)為5000個(gè)用戶正確的返回?fù)屍苯Y(jié)果。用戶數(shù)據(jù)需要持久化存儲(chǔ),考慮
mysql
和
mongo。事務(wù)性質(zhì),不能有一張票被兩個(gè)人同時(shí)搶到,考慮mysql。要求快速響應(yīng),需要在短時(shí)間內(nèi)返回結(jié)果,考慮內(nèi)存數(shù)據(jù)庫??紤]到業(yè)務(wù)場(chǎng)景的復(fù)雜性,我們嘗試能否對(duì)應(yīng)用場(chǎng)景進(jìn)行分離,即數(shù)據(jù)持久化存儲(chǔ)用mysql,搶票的時(shí)候則使用內(nèi)存數(shù)據(jù)庫進(jìn)行響應(yīng)。然而需要注意的是在進(jìn)行業(yè)務(wù)響應(yīng)時(shí),因?yàn)椴捎脙?nèi)存數(shù)據(jù)庫,那么將不能保證事務(wù)性質(zhì),怎么辦?數(shù)據(jù)庫選擇案例分析對(duì)于搶票業(yè)務(wù),我們嘗試分離業(yè)務(wù)場(chǎng)景:搶票業(yè)務(wù)可以分成 (1)
非搶票階段用戶登錄注冊(cè) (2)
搶票階段的用戶搶票,這部分又包括用戶身份驗(yàn)證,用戶發(fā)出搶票請(qǐng)求,系統(tǒng)驗(yàn)證是否還有余票,系統(tǒng)返回結(jié)果針對(duì)以上業(yè)務(wù)場(chǎng)景的分離,我們對(duì)(2)部分的業(yè)務(wù)請(qǐng)求速度有著極大的需求,因此希望全都在內(nèi)存之中進(jìn)行。而(1)因?yàn)樾枰?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆云南省昭通市高三下學(xué)期診斷性檢測(cè)歷史試題(原卷版+解析版)
- 2025年中學(xué)教師資格《綜合素質(zhì)》教育案例深度剖析模擬試卷含答案詳解
- 2025年小學(xué)語文畢業(yè)升學(xué)考試全真模擬卷(口語表達(dá)與素質(zhì)教育訓(xùn)練試題)
- 2025年養(yǎng)老護(hù)理員專業(yè)知識(shí)測(cè)試卷:養(yǎng)老護(hù)理員老年病學(xué)綜合實(shí)踐技能試題
- 2025年小學(xué)英語畢業(yè)考試模擬卷:英語閱讀理解技巧強(qiáng)化訓(xùn)練試題冊(cè)
- 2025年小學(xué)英語畢業(yè)模擬試題:英語歌曲欣賞與演唱課程設(shè)計(jì)
- 2025年成人高考《語文》模擬沖刺題庫:作文素材搜集與運(yùn)用能力訓(xùn)練試題
- 2025年一建《機(jī)電工程管理與實(shí)務(wù)》考試基礎(chǔ)知識(shí)點(diǎn)庫實(shí)戰(zhàn)試題集
- 2025年小學(xué)英語畢業(yè)考試模擬卷(英語繪本閱讀)-繪本故事背景知識(shí)拓展試卷
- 2025年小學(xué)教師資格《綜合素質(zhì)》教育創(chuàng)新實(shí)踐題目匯編及詳細(xì)答案
- 安全生產(chǎn)規(guī)章制度和崗位操作規(guī)程的目錄清單及內(nèi)容(無倉儲(chǔ)經(jīng)營單位)
- 《1提手旁》教學(xué)設(shè)計(jì)(江蘇省市級(jí)優(yōu)課)x-教案
- QCP品質(zhì)控制計(jì)劃模板
- 中成藥臨床應(yīng)用指導(dǎo)原則解讀
- 煤礦主要職業(yè)危害因素及控制
- 醫(yī)院規(guī)章制度
- (完整版)人工智能知識(shí)圖譜(歸納導(dǎo)圖)
- 人力資源管理師(三級(jí))課件
- 初級(jí)長拳第三路圖解
- XPD318 pd36w單c口快充方案-富滿PD協(xié)議XPD318規(guī)格書-驪微電子
- 洛陽物業(yè)管理服務(wù)收費(fèi)計(jì)費(fèi)辦法及標(biāo)準(zhǔn)的通知
評(píng)論
0/150
提交評(píng)論