版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
——網(wǎng)鳥老兵系列課程之10天掌握MongoDB第十天:分享實(shí)戰(zhàn)經(jīng)驗(yàn)網(wǎng)鳥出擊,必屬精品!微博:QQ:120468681(ymindchan)Q群:47700865(刺客巔峰)陳顏銘出品索引本課沒有目錄,想到啥就寫啥!最近趕上團(tuán)隊(duì)項(xiàng)目緊張,因此第十課的內(nèi)容以文字描述為主——陳顏銘NoSQL并不是No-SQL,而是指NotOnlySQL。對(duì)NoSQL的理解NoSQL的出現(xiàn)是為了彌補(bǔ)SQL數(shù)據(jù)庫因?yàn)槭聞?wù)等機(jī)制帶來的對(duì)海量數(shù)據(jù)、高并發(fā)請(qǐng)求的處理的性能上的欠缺。NoSQL不是為了替代SQL而出現(xiàn)的,它是一種替補(bǔ)方案,而不是任何項(xiàng)目的首選。絕大多數(shù)的NoSQL產(chǎn)品都是基于大內(nèi)存和高性能隨機(jī)讀寫的(比如具有更高性能的固態(tài)硬盤陣列),一般的小型企業(yè)在選擇NoSQL時(shí)一定要慎重!不要為了NoSQL而NoSQL,可能會(huì)導(dǎo)致花了冤枉錢又耽擱了項(xiàng)目進(jìn)程。NoSQL不是萬能的,但在大型項(xiàng)目中,你往往需要它!基于BSON,兼容JSON有廣泛的驅(qū)動(dòng)支持高性能、開源、面向文檔全文索引支持自動(dòng)復(fù)制分片內(nèi)置分布式文件系統(tǒng)內(nèi)置MapReduce支持……為什么是MongoDB?請(qǐng)閱讀:不要被老陳騙了,我只是想羅列一下MongoDB的優(yōu)點(diǎn),如果想了解其他NoSQL產(chǎn)品,不妨看看下面提供的網(wǎng)頁。在SQL時(shí)代,我們可以任意設(shè)計(jì)自己的表結(jié)構(gòu),僅僅需要注意數(shù)據(jù)類型的選擇,只是無法直接使用樹形設(shè)計(jì)而已。在MongoDB就沒這么幸運(yùn)了,MongoDB內(nèi)置的查詢機(jī)制非常有限,它無法讓“你的原來的設(shè)計(jì)”那么輕松的就能遷移過來。其實(shí),MongoDB這樣的“不給力”,都是“故意”的!通過核心算法的約束,強(qiáng)迫開發(fā)者大量的使用冗余數(shù)據(jù)來提升計(jì)算效率。這個(gè)做法,好!也不好!好的是,的確可以解決很多問題,不好的是,因此我們需要改變之前一貫的思路,甚至是之前認(rèn)為非常一般般的做法,還會(huì)給維護(hù)帶來很多“看起來不必要”的麻煩。MongoDB宣稱自己占用的處理器資源是很低的——其實(shí)是因?yàn)樗募軜?gòu)就直接繞開了很多運(yùn)算?。?!在這里我沒有太多想說的,總結(jié)起來就一句話——不要吝嗇存儲(chǔ)空間,要將冗余數(shù)據(jù)的優(yōu)點(diǎn)發(fā)揮到極致!文檔結(jié)構(gòu)設(shè)計(jì)傳統(tǒng)的用于優(yōu)化SQL的技巧,在MongoDB中同樣適用;不要為所有鍵都創(chuàng)建索引,也不要一個(gè)索引也不用;如果需要,請(qǐng)優(yōu)先考慮復(fù)合索引,但請(qǐng)注意鍵的順序;如果發(fā)現(xiàn)即使創(chuàng)建索引也無法很有效的提升,此時(shí)應(yīng)該考慮將數(shù)據(jù)分片;設(shè)計(jì)查詢時(shí),應(yīng)當(dāng)將能夠過濾掉大量記錄的條件放在前面,除非這樣的改動(dòng)影響了業(yè)務(wù)需求。無論什么業(yè)務(wù),請(qǐng)盡量避免在數(shù)據(jù)庫端處理各種排序,如果可以,請(qǐng)盡量減少這樣的設(shè)計(jì),以提升數(shù)據(jù)庫服務(wù)器的吞吐量。老陳的經(jīng)驗(yàn)是:用戶其實(shí)并不討厭多點(diǎn)幾次鼠標(biāo),討厭的是點(diǎn)了N多次鼠標(biāo)之后,找不到合適的內(nèi)容。試想一下,為什么baidu不提供用戶主動(dòng)排序的功能?此外,老陳的酒店搜索算法也去掉了用戶指定排序方式的支持——因?yàn)槲覀儗?duì)搜索結(jié)果非常自信,我們相信用戶已經(jīng)找到了自己期望的酒店(參考:)!索引及查詢優(yōu)化復(fù)制是指將數(shù)據(jù)完完整整的復(fù)制到其他MongoDB實(shí)例上;分片是將一塊數(shù)據(jù)很多小塊并分發(fā)到不同的集合或MongoDB實(shí)例;副本集帶有故障轉(zhuǎn)移的特性而實(shí)際上,在生產(chǎn)環(huán)境中,我們應(yīng)當(dāng)將如上三個(gè)概念混合使用,并發(fā)揮到極致。數(shù)據(jù)安全、運(yùn)算效率以及負(fù)載分流、故障轉(zhuǎn)移等等,每一個(gè)特性都需要做的很強(qiáng)壯!還記得前面說過的嗎,NoSQL不是誰都可以玩的,也不是誰都可以玩好的!一個(gè)強(qiáng)壯的MongoDB集群可能需要至少十幾臺(tái)服務(wù)器,光硬件就是不小的投入!關(guān)于數(shù)據(jù)安全——不要迷信任何設(shè)備,應(yīng)當(dāng)經(jīng)常備份重要的業(yè)務(wù)數(shù)據(jù)。是的,使用復(fù)制可以對(duì)MongoDB的數(shù)據(jù)執(zhí)行熱備份。而不需要停掉主數(shù)據(jù)庫引擎。復(fù)制分片及副本集盡量少用嵌套文檔,它會(huì)讓你的數(shù)據(jù)庫膨脹的非???,且不利于擴(kuò)展;當(dāng)然,我不是說不要用,如果沒有對(duì)子文檔的深層查詢、排序,或者根本就是記錄一下而已,這種情況用子文檔是最爽不過了!MongoDB不適合存儲(chǔ)高精度的數(shù)字,比如你需要精度非常高的財(cái)務(wù)數(shù)據(jù)存儲(chǔ),此時(shí)建議使用其他持久化方案,或者你干脆就存成字符串或者創(chuàng)建一個(gè)字符串格式的副本進(jìn)行存儲(chǔ)。MongoDB沒有內(nèi)聯(lián)查詢機(jī)制,全靠手工外鍵;MongoDB沒有自增標(biāo)識(shí),未來的規(guī)劃中也沒有跡象表明要支持,實(shí)際上,這是MongoDB故意的!我們建議使用隨機(jī)標(biāo)識(shí),而不是遞增標(biāo)識(shí)。標(biāo)識(shí),讀作biaozhi4,而不是biaoshi2,記好了哈!其他原本,第十課是打算給大家配上一個(gè)實(shí)例項(xiàng)目的,但時(shí)間上與公司項(xiàng)目沖突,因此不得不草草了之。如果本系列PPT對(duì)你有幫
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介合同范本
- 買賣廢鐵協(xié)議書(2024版)
- 二零二五年度成品油管道輸送工程設(shè)計(jì)與施工合同4篇
- 二零二五年度動(dòng)物養(yǎng)殖場(chǎng)害蟲防治與動(dòng)物福利合同3篇
- 個(gè)性化勞務(wù)派遣勞動(dòng)協(xié)議樣本一
- 2025年度店鋪形象升級(jí)改造協(xié)議合同
- 2025至2031年中國(guó)電磁鐵實(shí)驗(yàn)器行業(yè)投資前景及策略咨詢研究報(bào)告
- 二零二五年度建筑垃圾處理合同6篇
- 2025年度商業(yè)地產(chǎn)租賃及物業(yè)管理一體化合同3篇
- 分時(shí)租賃商業(yè)模式探討-深度研究
- 壞死性筋膜炎
- 2024輸血相關(guān)知識(shí)培訓(xùn)
- 整式的加減單元測(cè)試題6套
- 股權(quán)架構(gòu)完整
- 山東省泰安市2022年初中學(xué)業(yè)水平考試生物試題
- 注塑部質(zhì)量控制標(biāo)準(zhǔn)全套
- 人教A版高中數(shù)學(xué)選擇性必修第一冊(cè)第二章直線和圓的方程-經(jīng)典例題及配套練習(xí)題含答案解析
- 銀行網(wǎng)點(diǎn)服務(wù)禮儀標(biāo)準(zhǔn)培訓(xùn)課件
- 二年級(jí)下冊(cè)數(shù)學(xué)教案 -《數(shù)一數(shù)(二)》 北師大版
- 晶體三極管資料
- 銀行內(nèi)部舉報(bào)管理規(guī)定
評(píng)論
0/150
提交評(píng)論