成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mongodb性能優(yōu)化

xuhong / 1726人閱讀

摘要:轉(zhuǎn)載地址索引對于一個(gè)數(shù)據(jù)庫的影響相信大家一定了解,如果一個(gè)查詢命令進(jìn)入到數(shù)據(jù)庫中后,查詢優(yōu)化器沒有找到合適的索引,那么數(shù)據(jù)庫會(huì)進(jìn)行全集合掃描在中也叫全表掃描,全集合查詢對于性能的影響是災(zāi)難性的。如果數(shù)據(jù)的顆粒過大,索引就無法發(fā)揮該有的性能。

轉(zhuǎn)載地址:http://forum.foxera.com/mongo...

索引對于一個(gè)數(shù)據(jù)庫的影響相信大家一定了解,如果一個(gè)查詢命令進(jìn)入到數(shù)據(jù)庫中后,查詢優(yōu)化器沒有找到合適的索引,那么數(shù)據(jù)庫會(huì)進(jìn)行全集合掃描(在RDBMS中也叫全表掃描),全集合查詢對于性能的影響是災(zāi)難性的。沒有索引的查詢就如同在詞典那毫無規(guī)律的海量詞匯中獲得某個(gè)你想要的詞匯,但這個(gè)詞典是沒有目錄的,只能通過逐頁來查找。這樣的查找可能會(huì)讓你耗費(fèi)幾個(gè)小時(shí)的時(shí)間,但如果要求你查詢詞匯的頻率如同用戶訪問的頻率一樣的話。。。嘿嘿,我相信你一定會(huì)大喊“老子不干了!”。顯然計(jì)算機(jī)不會(huì)這樣喊,它一直是一個(gè)勤勤懇懇的員工,不論多么苛刻的請求他都會(huì)完成。

  在MongoDB中索引的類型與RDBMS中大體一致,我們不做過多重復(fù),我們來看一下在MongoDB中如何才能更高效的利用索引。

1.索引越少越好

  索引可以極大地提高查詢性能,那么索引是不是越多越好?答案是否定的,并且索引并非越多越好,而是越少越好。每當(dāng)你建立一個(gè)索引時(shí),系統(tǒng)會(huì)為你添加一個(gè)索引表,用于索引指定的列,然而當(dāng)你對已建立索引的列進(jìn)行插入或修改時(shí),數(shù)據(jù)庫則需要對原來的索引表進(jìn)行重新排序,重新排序的過程非常消耗性能,但應(yīng)對少量的索引壓力并不是很大,但如果索引的數(shù)量較多的話對于性能的影響可想而知。所以在創(chuàng)建索引時(shí)需要謹(jǐn)慎建立索引,要把每個(gè)索引的功能都要發(fā)揮到極致,也就是說在可以滿足索引需求的情況下,索引的數(shù)量越少越好。

一. 隱式索引

//建立復(fù)合索引
db.test.ensureIndex({"age": 1,"no": 1,"name": 1 })

  我們在查詢時(shí)可以迅速的將age,no字段進(jìn)行排序,隱式索引指的是如果我們想要排序的字段包含在已建立的復(fù)合索引中則無需重復(fù)建立索引。

db.test.find().sort("age": 1,"no": 1)
db.test.find().sort("age": 1)

  如以上兩個(gè)排序查詢,均可使用上面的復(fù)合索引,而不需要重新建立索引。

二. 翻轉(zhuǎn)索引

//建立復(fù)合索引
db.test.ensureIndex({"age": 1})

  翻轉(zhuǎn)索引很好理解,就是我們在排序查詢時(shí)無需考慮索引列的方向,例如這個(gè)例子中我們在查詢時(shí)可以將排序條件寫為"{"age": 0}",依舊不會(huì)影響性能。

2.索引列顆粒越小越好

  什么叫顆粒越小越好?在索引列中每個(gè)數(shù)據(jù)的重復(fù)數(shù)量稱為顆粒,也叫作索引的基數(shù)。如果數(shù)據(jù)的顆粒過大,索引就無法發(fā)揮該有的性能。例如,我們擁有一個(gè)"age"列索引,如果在"age"列中,30歲占了40%,如果現(xiàn)在要查詢一個(gè)30歲,名叫"Tom"的人,我們則需要在表的40%的數(shù)據(jù)中查詢,索引的作用大大降低。所以,我們在建立索引時(shí)要盡量將數(shù)據(jù)顆粒小的列放在索引左側(cè),以保證索引發(fā)揮最大的作用。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/19362.html

相關(guān)文章

  • MongoDB 性能優(yōu)化五個(gè)簡單步驟

    摘要:大家在使用的時(shí)候有沒有碰到過性能問題呢這里總結(jié)了性能優(yōu)化的五個(gè)步驟,希望能夠有所幫助。第四步使用稀疏索引來減少空間占用如果使用,并重度使用關(guān)鍵字,可以使用來減少空間占用提升查詢的性能。 MongoDB 一直是最流行的 NoSQL,而根據(jù) DB-Engines Ranking 最新的排行,時(shí)下 MongoDB 已經(jīng)擊敗 PostgreSQL 躍居數(shù)據(jù)庫總排行的第四位,僅次于 Oracle...

    xumenger 評論0 收藏0
  • 記一次MongoDB高負(fù)載的性能優(yōu)化

    摘要:年月日本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化此處涉及的技術(shù)包括引擎隨著游戲?qū)肴藬?shù)逐漸增加單個(gè)集合的文檔數(shù)已經(jīng)超過經(jīng)常有玩家反饋說卡特別是在服務(wù)器遷移后從核降到核卡頓更嚴(yán)重了遂開始排查問題確認(rèn)服務(wù)器壓力首先使用命令查看總體情況此時(shí)占用不高 Last-Modified: 2019年6月13日11:08:19 本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化, 此處涉及的技術(shù)包括: MongoDB...

    huhud 評論0 收藏0
  • 記一次MongoDB高負(fù)載的性能優(yōu)化

    摘要:年月日本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化此處涉及的技術(shù)包括引擎隨著游戲?qū)肴藬?shù)逐漸增加單個(gè)集合的文檔數(shù)已經(jīng)超過經(jīng)常有玩家反饋說卡特別是在服務(wù)器遷移后從核降到核卡頓更嚴(yán)重了遂開始排查問題確認(rèn)服務(wù)器壓力首先使用命令查看總體情況此時(shí)占用不高 Last-Modified: 2019年6月13日11:08:19 本文是關(guān)于記錄某次游戲服務(wù)端的性能優(yōu)化, 此處涉及的技術(shù)包括: MongoDB...

    vibiu 評論0 收藏0
  • MongoDB 2014 大會(huì)亮相北京,SegmentFault 給力支持現(xiàn)場吸睛

    摘要:活動(dòng)之圖文直播現(xiàn)在,在現(xiàn)場為大家發(fā)來報(bào)道大會(huì)在主持人甜美的聲音中開場,來自,作為中文社區(qū)的官方合作伙伴,是這次大會(huì)的特別支持。 11月22日,MongoDB 2014大會(huì)在北京拉開帷幕,這是一場程序員,架構(gòu)師和運(yùn)維工程師齊聚的技術(shù)盛會(huì),會(huì)上,MongoDB頂級(jí)專家對MongoDB性能調(diào)試與擴(kuò)展、模式設(shè)計(jì)藝術(shù)、集群管理及遷移以及大規(guī)模的使用等方面做了詳細(xì)講解,有200多開發(fā)者參與了此次盛...

    ThinkSNS 評論0 收藏0
  • UCloud MongoDB 如何應(yīng)對高考填志愿的上億流量高峰

    摘要:優(yōu)志愿張海鵬宋體背景宋體每年月下旬到月下旬期間是高考填志愿的高峰期,也是優(yōu)志愿后端面臨大流量高并發(fā)請求的業(yè)務(wù)高峰期。對于優(yōu)志愿讀多寫少的場景及其業(yè)務(wù)高峰期,用戶可以按需增刪節(jié)點(diǎn),更好地實(shí)現(xiàn)讀取性能的擴(kuò)展。 隨著用戶規(guī)模的增長,數(shù)據(jù)庫的壓力也在成倍增加。面對大流量、高并發(fā),UCloud MongoDB 做到了高效,并展現(xiàn)出了更好的性能體驗(yàn)。 —— 優(yōu)志愿 CTO 張海鵬 背景...

    cppprimer 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<