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

面試官:MySQL表中有2千萬條數據,B+樹層高是多少?

數據庫 其他數據庫
在 InnoDB 存儲引擎中,是以索引組織表的方式存放數據的,也就是表中數據是根據主鍵順序以索引的形式存放的。數據存儲在 B+ 樹中,每一個索引對應一棵 B+ 樹。

大家好,我是君哥。

MySQL 默認存儲引擎是 InnoDB,跟 MyISAM 相比,InnoDB 支持事務、支持行級鎖、支持主鍵和外鍵、索引存儲上使用 B+ 樹。

那如果 MySQL 一張表存儲了 2 千萬條數據,B+ 樹層高是多少呢?今天來聊一聊這個面試題。

InnoDB 存儲

在 InnoDB 存儲引擎中,是以索引組織表的方式存放數據的,也就是表中數據是根據主鍵順序以索引的形式存放的。數據存儲在 B+ 樹中,每一個索引對應一棵 B+ 樹。

我們知道,計算機中,磁盤存儲數據的最小單位是扇區,一個扇區大小為 512B。而文件系統的最小單位是塊,一個塊大小是 4K。

那 InnoDB 具體是以什么單位來存放數據呢?InnoDB 是以頁為單位存放數據的,一個頁大小是 16K。如下圖:

圖片圖片

B+ 樹索引

跟 MyISAM 不一樣的是,InnoDB 使用聚簇索引,葉子節點存儲數據,不用獨立的行存儲。下面是 MyISAM 的存儲結構:

圖片圖片

InnoDB 主鍵索引每個葉節點包含了主鍵值和所有的剩余字段。二級索引的葉節點中存儲是索引鍵和主鍵值,以此作為指向行的“指針”。如下圖:

圖片圖片

B+ 樹葉子節點存儲了數據,非葉子節點(索引節點)則存儲了 key 和指針。這樣存儲的優勢是可以在索引節點通過二分查找快速找到數據所在頁,時間復雜度為 O(log n)。找到數據頁后再去數據頁中找數據就很容易了。

圖片圖片

前面講到,InnoDB 以頁為單位來存儲數據,每頁 16k,那如果一條數據占 1k 的空間,那每頁可以存儲 16 條數據。

而索引節點保存的是 key 和指針。假如 key 的數據類型是 bigint,占 8B,指針大小在 InnoDB 中固定占 6B,那索引節點占空間大小為 14B,那每頁存放的索引節點就是 1170。

16 * 1024B/14B = 1170。

因此假如 B+ 樹高度為 2 層,則存放的數據為 1170(頁)* 16(每頁 16 條數據)= 18720。 同理如果 B+ 樹高度為 3 層,則存放的數據為 1170(頁)* 1170(每頁 1170 索引節點)* 16(每頁 16 條數據)= 21902400。

回到問題,一張表中有 2 千萬條數據,B+ 樹有幾層?如果小于等于 21902400 條,則 B+ 樹是 3 層,如果大于 21902400,則 B+ 樹是 4 層。

注意前提條件,一條數據占用空間大小是 1k,索引節點(索引節點)中 key 占用空間為 8B。

總結

本節以一道經典的面試題,引出了 MySQL 中 InnoDB 的存儲結構。理解了這個存儲結構,就可以很好的理解索引和數據查找原理了。

責任編輯:武曉燕 來源: 君哥聊技術
相關推薦

2021-06-04 07:55:05

MySQLB+ 樹數據

2020-09-08 06:43:53

B+樹面試索引

2019-09-19 14:03:32

B樹節點數據結構

2021-06-02 10:23:06

索引B+樹數據

2021-07-04 15:16:14

索引B+數據庫

2024-02-26 12:38:21

MySQLInnoDB跨度

2020-04-01 18:08:57

MySQL B-樹B+樹

2019-08-29 10:46:22

MySQL索引數據庫

2019-01-29 19:43:10

MySQL索引數據庫

2021-02-16 16:38:41

MySQLB+樹索引

2020-11-10 13:47:29

String源碼長度限制

2019-09-24 09:33:53

MySQLB+樹InnoDB

2024-04-23 14:09:59

JavaScript開發

2021-06-11 07:26:16

B+樹MySQL 索引

2022-03-28 08:24:52

MySQL聚簇索引非聚簇索引

2021-02-25 07:08:30

JavaScript 前端面試題

2021-05-31 11:43:19

B-樹MySQL索引

2019-03-14 09:51:50

MySQL存儲邏輯架構

2022-10-27 21:32:28

數據互聯網數據中心

2021-05-19 09:51:31

MySQL-B+樹數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区国产精品 | 日本啊v在线 | 国产高清久久 | 午夜免费在线 | 日韩中文字幕一区二区 | 国产午夜精品一区二区三区在线观看 | 日韩在线资源 | av网站免费在线观看 | 四虎在线视频 | 91精品国产综合久久久久 | 免费黄色av | 亚洲欧美久久 | 久久国产精品免费 | 精品中文字幕在线 | 午夜噜噜噜 | 免费色网址 | 草草网 | 91在线资源| 最新国产精品视频 | 午夜午夜精品一区二区三区文 | 日产精品久久久一区二区福利 | 蜜桃在线播放 | 欧美日本在线观看 | 亚洲第一黄色网 | 国产激情精品一区二区三区 | 日本特黄特色aaa大片免费 | 三级特黄特色视频 | 国产精品高潮呻吟久久久久 | 涩涩鲁亚洲精品一区二区 | 国产一级在线视频 | 丝袜美腿一区二区三区动态图 | 亚洲欧美综合网 | 日韩亚洲视频 | 久久综合国产精品 | 欧美精品91 | 国产精品久久久久久久久久久久冷 | 免费日韩网站 | 午夜在线视频 | 色综合久久88色综合天天 | 噜噜噜噜狠狠狠7777视频 | 久久免费精品 |