亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

提升MongoDB性能的方法

2020-03-14 12:49:02
字體:
來源:轉載
供稿:網友

MongoDB 是高性能數據,但是在使用的過程中,大家偶爾還會碰到一些性能問題。MongoDB和其它關系型數據庫相比,例如 SQL Server 、MySQL 、Oracle 相比來說,相對較新,很多人對其不是很熟悉,所以很多開發、DBA往往是注重功能的實現,而忽視了性能的要求。其實,MongoDB和 SQL Server 、MySQL 、Oracle 一樣,一個 數據庫對象的設計調整、索引的創建、語句的優化,都會對性能產生巨大的影響。

為了充分挖掘MongoDB性能,現簡單總計了以下18條,歡迎大家一起來持續總結完善。

(1)文檔中的_id鍵推薦使用默認值,禁止向_id中保存自定義的值。

解讀: MongoDB文檔中都會有一個“_id”鍵,默認是個ObjectID對象(標識符中包含時間戳、機器ID、進程ID和計數器)。MongoDB在指定_id與不指定_id插入時 速度相差很大,指定_id會減慢插入的速率。

(2)推薦使用短字段名。

解讀:與關系型數據庫不同,MongoDB集合中的每一個文檔都需要存儲字段名,長字段名會需要更多的存儲空間。

(3)MongoDB索引可以提高文檔的查詢、更新、刪除、排序操作,所以結合業務需求,適當創建索引。

(4)每個索引都會占用一些空間,并且導致插入操作的資源消耗,因此,建議每個集合的索引數盡量控制在5個以內。

(5)對于包含多個鍵的查詢,創建包含這些鍵的復合索引是個不錯的解決方案。復合索引的鍵值順序很重要,理解索引最左前綴原則。

解讀:例如在test集合上創建組合索引{a:1,b:1,c:1}。執行以下7個查詢語句:

db.test.find({a:”hello”}) // 1db.test.find({b:”sogo”, a:”hello”}) // 2db.test.find({a:”hello”,b:”sogo”, c:”666”}) // 3db.test.find({c:”666”, a:”hello”}) // 4db.test.find({b:”sogo”, c:”666”}) // 5db.test.find({b:”sogo” }) // 6db.test.find({c:”666”}) // 7

以上查詢語句可能走索引的是1、2、3、4

查詢應包含最左索引字段,以索引創建順序為準,與查詢字段順序無關。

最少索引覆蓋最多查詢。

(6)TTL 索引(time-to-live index,具有生命周期的索引),使用TTL索引可以將超時時間的文檔老化,一個文檔到達老化的程度之后就會被刪除。

解讀:創建TTL的索引必須是日期類型。TTL索引是一種單字段索引,不能是復合索引。TTL刪除文檔后臺線程每60s移除失效文檔。不支持定長集合。

(7)需要在集合中某字段創建索引,但集合中大量的文檔不包含此鍵值時,建議創建稀疏索引。

解讀:索引默認是密集型的,這意味著,即使文檔的索引字段缺失,在索引中也存在著一個對應關系。在稀疏索引中,只有包含了索引鍵值的文檔才會出現。

(8)創建文本索引時字段指定text,而不是1或者-1。每個集合只有一個文本索引,但是它可以為任意多個字段建立索引。

解讀:文本搜索速度快很多,推薦使用文本索引替代對集合文檔的多字段的低效查詢。

(9)使用findOne在數據庫中查詢匹配多個項目,它就會在自然排序文件集合中返回第一個項目。如果需要返回多個文檔,則使用find方法。

(10)如果查詢無需返回整個文檔或只是用來判斷鍵值是否存在,可以通過投影(映射)來限制返回字段,減少網絡流量和客戶端的內存使用。

解讀:既可以通過設置{key:1}來顯式指定返回的字段,也可以設置{key:0}指定需要排除的字段。

(11)除了前綴樣式查詢,正則表達式查詢不能使用索引,執行的時間比大多數選擇器更長,應節制性地使用它們。

(12)在聚合運算中,$要在match要在$group前面,通過$前置,可以減少match前置,可以減少$ group 操作符要處理的文檔數量。

(13)通過操作符對文檔進行修改,通??梢垣@得更好的性能,因為,不需要往返服務器來獲取并修改文檔數據,可以在序列化和傳輸數據上花費更少的時間。

(14)批量插入(batchInsert)可以減少數據向服務器的提交次數,提高性能。但是批量提交的BSON Size不超過48MB。

(15)禁止一次取出太多的數據進行排序,MongoDB目前支持對32M以內的結果集進行排序。如果需要排序,請盡量限制結果集中的數據量。

(16)查詢中的某些$操作符可能會導致性能低下,如操作符可能會導致性能低下,如$ne,$,not,$exists,$nin,$or盡量在業務中不要使用。

a) $exist:因為松散的文檔結構導致查詢必須遍歷每一個文檔;

b) $ne:如果當取反的值為大多數,則會掃描整個索引;

c) $not:可能會導致查詢優化器不知道應當使用哪個索引,所以會經常退化為全表掃描;

d) $nin:全表掃描;

e) /$有多個條件就會查詢多少次,最后合并結果集,應該考慮裝換為or:有多個條件就會查詢多少次,最后合并結果集,應該考慮裝換為$in。

(17)固定集合可以用于記錄日志,其插入數據更快,可以實現在插入數據時,淘汰最早的數據。需求分析和設計時,可考慮此特性,即提高了性能,有省去了刪除動作。

解讀:固定集合需要顯式創建,指定Size的大小,還能夠指定文檔的數量。集合不管先達到哪一個限制,之后插入的新文檔都會把最老的文檔移出。

(18)集合中文檔的數據量會影響查詢性能,為保持適量,需要定期歸檔。

Mongodb性能優化

數據庫性能對軟件整體性能有著至關重要的影響,對于Mongodb數據庫常用的性能優化方法主要有:

1、范式化與反范式化;

2、填充因子的使用;

3、索引的使用;

以上就是本次給大家整理的關于提升MongoDB性能的方法的全部內容,感謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到MongoDB頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人国产人伦爽爽爽| 欧美性xxxx18| 欧美一级黑人aaaaaaa做受| 久久伊人91精品综合网站| 大胆欧美人体视频| 日韩视频免费中文字幕| 国产精品h在线观看| 久久久久久69| 欧美丝袜一区二区| 国产婷婷97碰碰久久人人蜜臀| 亚洲成人a**站| 91夜夜未满十八勿入爽爽影院| 日韩欧美在线国产| 九九综合九九综合| 91系列在线观看| 国产亚洲精品激情久久| 91美女高潮出水| 亚洲第一福利视频| 亚洲午夜小视频| 中文字幕精品—区二区| 福利视频一区二区| 亚洲激情视频在线观看| 日韩一区二区精品视频| 欧美大全免费观看电视剧大泉洋| 成人午夜两性视频| 国产自产女人91一区在线观看| 一区三区二区视频| 亚洲天堂av综合网| 国产99久久精品一区二区 夜夜躁日日躁| 欧美成人精品一区| 美女性感视频久久久| 欧美成人精品在线播放| 91性高湖久久久久久久久_久久99| 精品在线观看国产| 欧美成人剧情片在线观看| 日韩在线观看视频免费| 国色天香2019中文字幕在线观看| 亚洲午夜精品久久久久久性色| 亚洲精品美女久久久久| 久久久久久综合网天天| xxx成人少妇69| 成人网中文字幕| 欧美人交a欧美精品| 亚洲天堂av高清| 日韩精品免费电影| 中文字幕欧美在线| 国产精品美乳在线观看| 欧亚精品中文字幕| 久久久这里只有精品视频| 欧美黄色成人网| 欧美大片va欧美在线播放| 亚洲美女www午夜| 久久伊人精品一区二区三区| 久久国产精品久久久久久久久久| 国产亚洲精品久久久优势| 色婷婷成人综合| 亚洲成人黄色网| 亚洲国产日韩欧美在线99| 主播福利视频一区| 亚洲欧美制服第一页| 国产日韩一区在线| 国产美女精品视频免费观看| 久久久www成人免费精品张筱雨| 日本最新高清不卡中文字幕| 在线日韩中文字幕| 亚洲美女在线看| 日本一区二区三区在线播放| 成人久久18免费网站图片| 久久精品99久久久久久久久| 欧美激情综合亚洲一二区| 亚洲第一网站免费视频| 中文字幕精品—区二区| 国产免费一区二区三区香蕉精| 97视频在线观看视频免费视频| 色播久久人人爽人人爽人人片视av| 欧美在线影院在线视频| 日韩在线观看你懂的| 亚洲自拍小视频| 成人精品一区二区三区电影黑人| 欧美中文字幕在线播放| 久久久久久久色| 欧美成人午夜激情在线| 播播国产欧美激情| 欧美日韩精品在线观看| 7m精品福利视频导航| 成人福利网站在线观看11| 欧美疯狂性受xxxxx另类| 亚洲乱亚洲乱妇无码| 午夜精品蜜臀一区二区三区免费| 国产精品情侣自拍| 97国产在线视频| 亚洲开心激情网| 伊人久久免费视频| 国产精品av在线| 欧美性猛交视频| 久久久久久久97| 亚洲第一精品电影| 亚洲福利小视频| 成人在线视频网| 日av在线播放中文不卡| 色偷偷91综合久久噜噜| 国产视频精品xxxx| 色午夜这里只有精品| 亚洲精品天天看| 成人h片在线播放免费网站| 国自产精品手机在线观看视频| 欧美成人精品一区二区| 粉嫩老牛aⅴ一区二区三区| 中文字幕精品www乱入免费视频| 欧美日韩国产丝袜另类| 欧美日韩亚洲精品内裤| 亚洲丁香久久久| 亚洲美女av在线| 亚洲人成77777在线观看网| 在线成人激情视频| 国产一区视频在线| 国产精品福利片| 亚洲人a成www在线影院| 日韩精品一二三四区| 欧美成人精品在线视频| 永久免费毛片在线播放不卡| 亚洲国产99精品国自产| 久久久久久69| 成人黄色短视频在线观看| 欧美精品在线第一页| 91po在线观看91精品国产性色| 色999日韩欧美国产| 亚洲国产欧美一区二区三区同亚洲| 久久香蕉频线观| 国产精品毛片a∨一区二区三区|国| 欧美亚洲激情视频| 久久91精品国产91久久跳| 亚洲国产欧美一区| 欧美有码在线视频| 国产精品久久久久久久美男| 欧美日韩性视频| 中文字幕亚洲欧美一区二区三区| 亚洲精品资源在线| 亚洲国产日韩欧美在线图片| 日韩av在线一区| 国产精品pans私拍| 久久久久免费精品国产| 午夜精品久久久久久99热| 97精品国产97久久久久久春色| 欧美最猛性xxxxx亚洲精品| 人九九综合九九宗合| 97久久精品人搡人人玩| 日韩精品视频免费在线观看| 97国产成人精品视频| 亚洲护士老师的毛茸茸最新章节| 国产成人精品免高潮在线观看| 性欧美在线看片a免费观看| 欧美性黄网官网| 欧美激情在线视频二区| 97在线观看视频国产| 日韩欧美精品网站| 色婷婷av一区二区三区久久| 亚洲女成人图区| 久久精品视频亚洲| www.亚洲一二| 国产精品久久国产精品99gif| 成人在线激情视频| 久久777国产线看观看精品| 日韩在线视频导航|