麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 為什么有關(guān)MongoDB采用B樹索引,以及Mysql B+樹做索引?

為什么有關(guān)MongoDB采用B樹索引,以及Mysql B+樹做索引?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-11 04:04:28 1696968268

一、為什么有關(guān)MongoDB采用B樹索引,以及Mysql B+樹做索引

B-樹和B+樹最重要的一個區(qū)別就是B+樹只有葉節(jié)點存放數(shù)據(jù),其余節(jié)點用來索引,而B-樹是每個索引節(jié)點都會有Data域。
這就決定了B+樹更適合用來存儲外部數(shù)據(jù),也就是所謂的磁盤數(shù)據(jù)。
從Mysql(Inoodb)的角度來看,B+樹是用來充當(dāng)索引的,一般來說索引非常大,尤其是關(guān)系性數(shù)據(jù)庫這種數(shù)據(jù)量大的索引能達到億級別,所以為了減少內(nèi)存的占用,索引也會被存儲在磁盤上。
那么Mysql如何衡量查詢效率呢?磁盤IO次數(shù),B-樹(B類樹)的特定就是每層節(jié)點數(shù)目非常多,層數(shù)很少,目的就是為了就少磁盤IO次數(shù),當(dāng)查詢數(shù)據(jù)的時候,較好的情況就是很快找到目標(biāo)索引,然后讀取數(shù)據(jù),使用B+樹就能很好的完成這個目的,但是B-樹的每個節(jié)點都有data域(指針),這無疑增大了節(jié)點大小,說白了增加了磁盤IO次數(shù)(磁盤IO一次讀出的數(shù)據(jù)量大小是固定的,單個數(shù)據(jù)變大,每次讀出的就少,IO次數(shù)增多,一次IO多耗時啊!),而B+樹除了葉子節(jié)點其它節(jié)點并不存儲數(shù)據(jù),節(jié)點小,磁盤IO次數(shù)就少。這是優(yōu)點之一。
另一個優(yōu)點是什么,B+樹所有的Data域在葉子節(jié)點,一般來說都會進行一個優(yōu)化,就是將所有的葉子節(jié)點用指針串起來。這樣遍歷葉子節(jié)點就能獲得全部數(shù)據(jù),這樣就能進行區(qū)間訪問啦。

(數(shù)據(jù)庫索引采用B+樹的主要原因是 B樹在提高了磁盤IO性能的同時并沒有解決元素遍歷的效率低下的問題。正是為了解決這個問題,B+樹應(yīng)運而生。B+樹只要遍歷葉子節(jié)點就可以實現(xiàn)整棵樹的遍歷。而且在數(shù)據(jù)庫中基于范圍的查詢是非常頻繁的,而B樹不支持這樣的操作(或者說效率太低))。
至于MongoDB為什么使用B-樹而不是B+樹,可以從它的設(shè)計角度來考慮,它并不是傳統(tǒng)的關(guān)系性數(shù)據(jù)庫,而是以Json格式作為存儲的nosql,目的就是高性能,高可用,易擴展。首先它擺脫了關(guān)系模型,上面所述的優(yōu)點2需求就沒那么強烈了,其次Mysql由于使用B+樹,數(shù)據(jù)都在葉節(jié)點上,每次查詢都需要訪問到葉節(jié)點,而MongoDB使用B-樹,所有節(jié)點都有Data域,只要找到指定索引就可以進行訪問,無疑單次查詢平均快于Mysql(但側(cè)面來看Mysql至少平均查詢耗時差不多)。
總體來說,Mysql選用B+樹和MongoDB選用B-樹還是以自己的需求來選擇的。

延伸閱讀:

二、二叉樹和紅黑樹

二叉樹:對于表提供自增整形字段作為建立索引的列,那子元素總是添加去了右側(cè),導(dǎo)致左子樹一直為空,那么查找時就完全退化成了沒加索引那樣了。紅黑樹:紅黑樹解決了二叉樹不平衡的問題。然為什么要費力保持樹的平衡性?是因為樹的查找性能取決于樹的高度,讓樹盡可能平衡,就能降低樹高。但因為其父節(jié)點只能存在兩個子節(jié)點,那在數(shù)據(jù)量大的時候,深度也很大。
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
在C語言下數(shù)組array與鏈表linklist各自的優(yōu)點和缺陷是什么?

一、在C語言下數(shù)組array與鏈表linklist各自的優(yōu)點和缺陷數(shù)組可以通過下標(biāo)訪問,隨機訪問效率高,鏈表需要通過指針遍歷,訪問效率低。數(shù)組在分配...詳情>>

2023-10-11 05:43:25
oa系統(tǒng)一般有哪些模塊?

一、組織架構(gòu)模塊組織架構(gòu)模塊記錄了企業(yè)的組織結(jié)構(gòu)、人員信息、部門職責(zé)、工作流程等基本信息,實現(xiàn)了組織架構(gòu)的可視化和管理。該模塊主要包括...詳情>>

2023-10-11 05:33:42
為什么python沒有大頂堆?

一、python沒有大頂堆的原因Python沒有內(nèi)置大頂堆,是因為在實際使用中,大頂堆并不是那么常用。相比之下,小頂堆和普通的堆操作更具有廣泛的應(yīng)...詳情>>

2023-10-11 05:30:39
什么是crm管理?

一、crm管理概念 CRM管理也叫客戶管理,亦即客戶關(guān)系管理(Customer Relationship Management)的簡稱。CRM管理的主要含義就是通過對客戶詳細(xì)資...詳情>>

2023-10-11 05:28:00
單調(diào)棧什么時候從后向前遍歷,什么時候從前向后遍歷?

一、單調(diào)棧什么時候從后向前遍歷,什么時候從前向后遍歷如果是求右邊的名列前茅個最大,那么就是從右向左遍歷,構(gòu)建單調(diào)遞增棧。如果是求右邊的...詳情>>

2023-10-11 05:23:50
主站蜘蛛池模板: 亚洲欧美小视频| 免费网站看v片在线香蕉| 日本一本高清视频| 好爽好深胸好大好多水视频| 俺也去第四色| 四虎影视在线影院4hutv| 动漫女同性被吸乳羞羞漫画| 日韩毛片| 武侠古典一区二区三区中文| 黄色三级斤| 调教h视频| 国产一卡二卡| 扒开双腿猛进入免费观看美女| 性生活大片免费看| 青青伊人精品| 久久成人免费播放网站| 精品国产综合区久久久久久| 日本阿v视频高清在线中文| 女人爽小雪又嫩又紧| 好骚导航| 免费很黄很色裸乳在线观看| 用我的手指搅乱吧未增删翻译 | 久久精品视频一区| 老头猛挺进小莹的体内小说全集 | 野花视频在线观看免费观看最新| 国产色综合久久无码有码| 欧美老人巨大xxxx做受视频| 乱色| 亚洲神级电影国语版| 琪琪色在线观看| 韩国免费一级片| 成人在线毛片| 色哟哟精品视频在线观看| 日韩三级电影院| igao视频在线| 伊人久久大香线蕉综合电影网| 美国式禁忌5太大了| 好大好硬别停老师办公室视频| 亚洲s色大片| 久久成人精品视频| 波多野结衣不卡|