麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

MongoDb為何要優(yōu)化?優(yōu)化方法是什么?

2024-09-07 00:22:37
字體:
供稿:網(wǎng)友
        MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,也是現(xiàn)在比較受歡迎的數(shù)據(jù)庫之一,這篇文章主要給大家介紹的關(guān)于MongoDB優(yōu)化的內(nèi)容,感興趣的朋友就跟隨小編一起來了解吧。
 
        1、為什么選擇MongoDB?
 
        1、性能
 
        在大數(shù)據(jù)時(shí)代中,大數(shù)據(jù)量的處理已經(jīng)成了考量一個(gè)數(shù)據(jù)庫最重要的原因之一。而MongoDB的一個(gè)主要目標(biāo)就是盡可能的讓數(shù)據(jù)庫保持卓越的性能,這很大程度地決定了MongoDB的設(shè)計(jì)。在一個(gè)以傳統(tǒng)機(jī)械硬盤為主導(dǎo)的年代,硬盤很可能會(huì)成為性能的短板,而MongoDB選擇了最大程度而利用內(nèi)存資源用作緩存來換取卓越的性能,并且會(huì)自動(dòng)選擇速度最快的索引來進(jìn)行查詢。MongoDB盡可能精簡數(shù)據(jù)庫,將盡可能多的操作交給客戶端,這種方式也是MongoDB能夠保持卓越性能的原因之一。
 
        2、擴(kuò)展
 
        現(xiàn)在互聯(lián)網(wǎng)的數(shù)據(jù)量已經(jīng)從過去的MB、GB變?yōu)榱爽F(xiàn)在的TB級(jí)別,單一的數(shù)據(jù)庫顯然已經(jīng)無法承受,擴(kuò)展性成為重要的話題,然而現(xiàn)在的開發(fā)人員常常在選擇擴(kuò)展方式的時(shí)候犯了難,到底是選擇橫向擴(kuò)展還是縱向擴(kuò)展呢?
        橫向擴(kuò)展(scale out)是以增加分區(qū)的方式將數(shù)據(jù)庫拆分成不同的區(qū)塊來分布到不同的機(jī)器中來,這樣的優(yōu)勢是擴(kuò)展成本低但管理困難。
 
        3、使用
 
        MongoDB采用的是NoSQL的設(shè)計(jì)方式,可以更加靈活的操作數(shù)據(jù)。在進(jìn)行傳統(tǒng)的RDBMS中你一定遇到過幾十行甚至上百行的復(fù)雜SQL語句,傳統(tǒng)的RDBMS的SQL語句中包含著大量關(guān)聯(lián),子查詢等語句,在增加復(fù)雜性的同時(shí)還讓性能調(diào)優(yōu)變得更加困難。MongoDB的面向文檔(document-oriented)設(shè)計(jì)中采用更為靈活的文檔來作為數(shù)據(jù)模型用來取代RDBMS中的行,面向文檔的設(shè)計(jì)讓開發(fā)人員獲取數(shù)據(jù)的方式更加靈活,甚至于開發(fā)人員僅用一條語句即可查詢復(fù)雜的嵌套關(guān)系,讓開發(fā)人員不必為了獲取數(shù)據(jù)而絞盡腦汁。
 
        2、NoSQL對傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)思維的影響
 
        1、預(yù)設(shè)計(jì)模式與動(dòng)態(tài)模式
 
        傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)思維中,項(xiàng)目的設(shè)計(jì)階段需要對數(shù)據(jù)庫表中的字段名稱、字段類型、進(jìn)行規(guī)定,如果嘗試插入不符合設(shè)計(jì)的數(shù)據(jù),數(shù)據(jù)庫不會(huì)接受這條數(shù)據(jù)以保證數(shù)據(jù)的完整性。
 
        --數(shù)據(jù)庫字段:NAME, SONG
 
INSERT INTO T_INFO VALUES('John','Come Together'); --成功
INSERT INTO T_INFO VALUES('小明', 20, '[email protected]'); --失敗
        NoSQL采用的是對集合(類似"表")中的文檔(類似于"行")進(jìn)行動(dòng)態(tài)追加,在創(chuàng)建集合之初不會(huì)對數(shù)據(jù)類型進(jìn)行限定,任何文檔都可以追加到任何集合中去,例如我們可以將這樣兩條文檔添加到一個(gè)集合中去:
 
{"name" : "John", "song" : "Come Together"}
{"name" : "小明", "age":"20", "email" : [email protected]}
 
        MongoDB中文檔的格式類似于我們常見的JSON,由此可見,我們第一個(gè)擁有"name"、"song"兩個(gè)字段,而第二個(gè)擁有"name"、"age"、"email"三個(gè)字段,這在預(yù)設(shè)計(jì)模式中的數(shù)據(jù)庫是不可能插入成功的,但在MongoDB的動(dòng)態(tài)模式是可以的,這樣做的優(yōu)勢是我們不必為一些數(shù)量很少,但種類很多的字段單獨(dú)設(shè)計(jì)一張表,可以將他們集中在單獨(dú)一張表進(jìn)行存儲(chǔ),但這樣做的弊病也是顯而易見的,我們在獲取數(shù)據(jù)時(shí)需要對同一張表的不同文檔進(jìn)行區(qū)分,增加了開發(fā)上的代碼量。所以在設(shè)計(jì)之初需要權(quán)衡動(dòng)態(tài)模式的優(yōu)劣來選擇表中的數(shù)據(jù)類型。
 
        2、范式化與反范式化
 
        范式化(normalization)是關(guān)系模型的發(fā)明者埃德加・科德于1970年提出這一概念,范式化會(huì)將數(shù)據(jù)分散到不同的表中,利用關(guān)系模型進(jìn)行關(guān)聯(lián),由此帶來的優(yōu)點(diǎn)是,在后期進(jìn)行修改時(shí),不會(huì)影響到與其關(guān)聯(lián)的數(shù)據(jù),僅對自身修改即可完成。
 
        3、性能與用戶量
 
        “如何能讓軟件擁有更高的性能?”,我想這是一個(gè)大部分開發(fā)者都思考過的問題。性能往往決定了一個(gè)軟件的質(zhì)量,如果你開發(fā)的是一個(gè)互聯(lián)網(wǎng)產(chǎn)品,那么你的產(chǎn)品性能將更加受到考驗(yàn),因?yàn)槟忝鎸Φ氖菑V大的互聯(lián)網(wǎng)用戶,他們可不是那么有耐心的。嚴(yán)重點(diǎn)說,頁面的加載速度每增加一秒也許都會(huì)使你失去一部分用戶,也就是說,加載速度和用戶量是成反比的。那么用戶能夠接受的加載速度到底是多少呢? 
 
 
        數(shù)據(jù)庫性能對軟件整體性能的影響是不言而喻的,那么,當(dāng)我們使用MongoDB時(shí)改如何提高數(shù)據(jù)庫性能呢?
 
        4、范式化與反范式化
 
        在項(xiàng)目設(shè)計(jì)階段,明確集合的用途是對性能調(diào)優(yōu)非常重要的一步。
 
        從性能優(yōu)化的角度來看,集合的設(shè)計(jì)我們需要考慮的是集合中數(shù)據(jù)的常用操作,例如我們需要設(shè)計(jì)一個(gè)日志(log)集合,日志的查看頻率不高,但寫入頻率卻很高,那么我們就可以得到這個(gè)集合中常用的操作是更新(增刪改)。如果我們要保存的是城市列表呢?顯而易見,這個(gè)集合是一個(gè)查看頻率很高,但寫入頻率很低的集合,那么常用的操作就是查詢。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄色特级视频 | 成人在线视频在线观看 | fc2成人免费人成在线观看播放 | 桥本有菜免费av一区二区三区 | 黄色三级网站 | 免费在线观看国产精品 | 成人资源在线观看 | 免费在线观看毛片视频 | 国产91免费看 | 欧美 亚洲 视频 | 日本一区二区免费在线观看 | 黄色av一区二区三区 | 国产一级伦理片 | 国产成人精品区一区二区不卡 | 久久性生活免费视频 | 久久精品中文字幕一区二区 | 操你啦免费视频 | 久久福利精品 | 4p一女两男做爰在线观看 | 欧美视频一区二区三区 | av在线免费观看播放 | 福利在线免费 | 亚洲射情 | 九九久久视频 | 成人国产精品一区二区毛片在线 | 日本大片在线播放 | 免费观看一区二区三区视频 | 精品国产欧美一区二区 | 亚洲成人免费视频在线 | av国产片 | 色婷婷av一区二区三区久久 | www.狠狠操.com| 精品国产一区二区三区在线观看 | 羞羞羞羞视频 | 久久免费视频一区二区三区 | 国产黄色免费网站 | 欧美一级黄色片在线观看 | 国产一区视频观看 | 日韩精品久久久久久久电影99爱 | porno video hd 365hd | 欧美成人小视频 |