成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

樹結構之MongoDb 使用的到底是 B 樹,還是 B+ 樹?

運維 數據庫運維 MongoDB
關于 B 樹與 B+ 樹,網上有一個比較經典的問題:為什么 MongoDb 使用 B 樹,而 MySQL 索引使用 B+ 樹?

 [[393997]]

本文轉載自微信公眾號「陳樹義」,作者陳樹義。轉載本文請聯系陳樹義公眾號。

關于 B 樹與 B+ 樹,網上有一個比較經典的問題:為什么 MongoDb 使用 B 樹,而 MySQL 索引使用 B+ 樹?

但實際上 MongoDb 真的用的是 B 樹嗎?

通過查閱資料,我從 MongoDb 的官網和 WiredTiger 官網找到了答案。MongoDb 官網關于存儲引擎(Storage Engine)的描述寫道:從 MongoDb 3.2 版本開始,其使用了 WiredTiger 作為其默認的存儲引擎。

文檔地址:WiredTiger Storage Engine — MongoDB Manual

而從 WiredTiger 官網文檔,我們可以知道:WiredTiger 使用的是 B+ 樹作為其存儲結構。

文檔地址:WiredTiger: Tuning page size and compression

那為什么會出現很多資料說 MongoDb 使用 B 樹作為存儲的數據結構呢?我想可能有兩個原因:一個原因可能是 B+ Tree 本身是 B 樹的一種優化,所以很多人就直接把 B+ 樹說成 B 樹了。另一個原因可能是 MongoDb 3.2 之前,確實使用 B 樹作為存儲的數據結構。

對于這兩個原因,我沒有深入去探尋,有答案的朋友可以留言討論一下。但我知道,無論是什么原因,都不影響我們對這個問題的討論。表面上,我們是在討論 MongoDb 與 MySQL 存儲的數據結構,但實際上我們是在討論 B 樹和 B+ 樹這兩種數據結構的特點。

因此,無論 MongoDb 使用的是 B 樹,還是 B+ 樹。只要我們弄清楚 B 樹與 B+ 樹之間的區別,我們就可以在合適的時候,選擇合適的數據結構。

B 樹與 B+ 樹,其比較大的特點是:B 樹對于特定記錄的查詢,其時間復雜度更低。而 B+ 樹對于范圍查詢則更加方便,另外 B+ 樹相對于 B 樹來說更加扁平。

對于 MongoDb 來說,其是非關系型數據庫,較少做聯表的范圍查詢。如果這確實是 MongoDb 非常典型的使用場景,使用 B 樹其實可以加快其查詢速度。

但實際上 MongoDb 3.2 之后,其使用了 B+ 樹作為其數據結構。B+ 樹其在范圍查詢方面更有優勢,那有可能是 B+ 樹更加扁平,可以讓其更加快速地找到數據,加快其查找速度。也有可能是 MongoDb 的范圍查詢特性使用更加廣泛了。

說到這里,你可能有點迷糊,那實際情況到底是什么呢?

其實我自己并沒有找到答案。我的思考也是到此為止,我也并沒有找到更好的答案。與其腹死胎中,還不如寫下來與大家討論。或許不久之后我就忽然大悟,明白這其中的道理,到時候再來給大家分享。

寫到這里,腦袋里蹦出另外一個問題:那為啥 MongoDb 要使用 B+ 樹 ?而不使用平衡二叉樹?嗯,答案其實很簡單——是因為需要使用 B 樹能加載大數據量的特性,否則其實現不了這么大量數據的查詢和排序。

 

責任編輯:武曉燕 來源: 陳樹義
相關推薦

2020-04-01 18:08:57

MySQL B-樹B+樹

2019-08-29 10:46:22

MySQL索引數據庫

2019-01-29 19:43:10

MySQL索引數據庫

2021-05-19 09:51:31

MySQL-B+樹數據

2020-02-12 19:01:22

索引B-樹B+樹

2019-09-24 09:33:53

MySQLB+樹InnoDB

2019-12-31 09:33:03

MongoDBB 樹NoSQL

2023-08-29 08:31:13

B+樹數據索引

2024-05-22 09:01:53

InnoDBB+索引

2023-07-31 09:12:39

B+樹節點B+Tree

2022-03-28 08:24:52

MySQL聚簇索引非聚簇索引

2021-02-16 16:38:41

MySQLB+樹索引

2020-03-30 17:20:54

B+樹SQL索引

2015-04-21 13:09:01

B+樹MySQL索引結構

2019-09-19 14:03:32

B樹節點數據結構

2019-11-26 15:12:08

數據存儲B+樹

2021-12-14 17:19:15

存儲數據

2022-04-16 14:20:29

MySQL數據庫

2023-11-28 16:17:20

數據庫MySQL

2021-06-02 10:23:06

索引B+樹數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄瓜av| 亚洲风情在线观看 | 久久男人 | 亚洲一二三区在线观看 | 国产一级影片 | 亚洲精品三级 | 91色视频在线 | 欧美性乱 | 久久不卡 | av中文字幕在线观看 | 国产精品久久久久久影视 | 黄色片在线观看网址 | 国产精品国产馆在线真实露脸 | 欧美日韩亚洲国产 | 久久精品国产久精国产 | 国产香蕉视频在线播放 | 国产91久久精品一区二区 | 久久久久国产一区二区三区 | 日本午夜一区 | 久草热播 | 精品欧美乱码久久久久久1区2区 | 又黑又粗又长的欧美一区 | 色免费在线视频 | 一级片在线观看 | 国产精品一区在线观看 | 国内91在线 | 99久久亚洲 | 国产二区av| 国产精品久久久久久久久久久久久久 | 在线视频第一页 | julia中文字幕久久一区二区 | 欧美日韩久久 | 人人艹人人爽 | 日韩视频在线观看一区二区 | 国产又色又爽又黄又免费 | 国产欧美一区二区精品忘忧草 | 国产亚洲日本精品 | 日韩另类视频 | 国产一级电影在线观看 | 99国产精品99久久久久久粉嫩 | 久久综合伊人一区二区三 |