成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

獲取 MySQL innodb B+tree 的高度的方法

瀏覽:372日期:2023-10-10 12:08:01

前言

MySQL 的 innodb 引擎之所以使用 B+tree 來存儲索引,就是想盡量減少數據查詢時磁盤 IO 次數。樹的高度直接影響了查詢的性能。一般樹的高度在 3~4 層較為適宜。數據庫分表的目的也是為了控制樹的高度。那么如何獲取樹的高度呢?下面使用一個示例來說明如何獲取樹的高度。

示例數據準備

建表語句如下:

CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) CHARACTER SET latin1 DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `name` (`name`), KEY `age` (`age`)) ENGINE=InnoDB DEFAULT CHARSET=utf8

表中插入100萬條數據。數據如下:

mysql> select * from user limit 2G*************************** 1. row *************************** id: 110000name: ab age: 100*************************** 2. row *************************** id: 110001name: ab age: 1002 rows in set (0.00 sec)

通過查詢相關數據表獲取樹的高度

以 MySQL5.6 版本為例說明如何獲取樹的高度。

首先獲取 page_no

mysql> SELECT b.name, a.name, index_id, type, a.space, a.PAGE_NO FROM information_schema.INNODB_SYS_INDEXES a, information_schema.INNODB_SYS_TABLES b WHERE a.table_id = b.table_id AND a.space <> 0 and b.name=’test/user’;+-----------+---------+----------+------+-------+---------+| name | name | index_id | type | space | PAGE_NO |+-----------+---------+----------+------+-------+---------+| test/user | PRIMARY | 22 | 3 | 6 | 3 || test/user | name | 23 | 0 | 6 | 4 || test/user | age | 24 | 0 | 6 | 5 |+-----------+---------+----------+------+-------+---------+3 rows in set (0.00 sec)

page_no 是索引樹中Root頁的序列號。其它各項的含義可以參照:https://dev.mysql.com/doc/refman/5.6/en/innodb-sys-indexes-table.html

再讀取頁的大小

mysql> show global variables like ’innodb_page_size’;+------------------+-------+| Variable_name | Value |+------------------+-------+| innodb_page_size | 16384 |+------------------+-------+1 row in set (0.00 sec)

最后讀取索引樹的高度

$ hexdump -s 49216 -n 10 ./user.ibd000c040 0200 0000 0000 0000 1600000c04a

可以發現 PAGE_LEVEL 為 0200,表示這棵二級索引樹的高度為 3。后面的 1600 是索引的 index_id 值。十六進制的 16 轉換為十進制數字是 22。這個 22 正好就是上面主鍵的 index_id。上面 hexdump 命令中 49216 是怎么算出來的?公式是 page_no * innodb_page_size + 64。3*16384+64=49216

我們在用這個方式查看下其他兩個索引的高度。

$ hexdump -s 65600 -n 10 ./user.ibd0010040 0100 0000 0000 0000 1700001004a$ hexdump -s 81984 -n 10 ./user.ibd0014040 0200 0000 0000 0000 1800001404a

可見,name 索引的高度是 2,age 索引的高度是 3。

根據索引的結構估算

如果你沒有數據庫服務器的權限。自己也可以根據數據庫索引結構進行估算樹的高度。根據 B+Tree 結構,非葉子節點存儲的是索引數據,葉子節點存儲的是每行的所有數據。非葉子節點每個索引項的大小是,數據大小+指針大小。假設指針大小為 8 個字節。每頁不會被占滿,預留1/5的空隙。下面我們估算下 name 和 age 兩個索引的高度。

name 索引高度估算

非葉子節點每頁存放的索引項數量。每頁大小是 16k。name 的值為 ab。占2個字節。每項數據大小是 2+8=10字節。每頁能存放的索引項數量是 16384 * 0.8 / 10 = 1310 個。葉子節點每頁存放的索引數量。每頁大小是 16k。每項數據大小是 4+2+8=14 個字節。沒頁能存放的索引數量是 16384 * 0.8 / 14 = 936 個。兩層能存放 1310*936=1226160 個數據記錄??梢?20萬條記錄以下,樹的高度為2。

age 索引高度估算

非葉子節點每頁存放的索引項數量。每頁大小是 16k。age 的類型為 int。占4個字節。每項數據大小是 4+8=12字節。每頁能存放的索引項數量是 16384 * 0.8 / 12 = 1092 個。葉子節點每頁存放的索引數量。每頁大小是 16k。每項數據大小是 4+4+8=16 個字節。沒頁能存放的索引數量是 16384 * 0.8 / 16 = 819 個。兩層能存放 1092*819=894348 個數據記錄??梢?0萬條記錄以下,樹的高度為2。100萬條為 3 層。

其它工具

還有一個小工具可以查看。InnoDB 表空間可視化工具innodb_ruby

以上就是獲取 MySQL innodb 的 B+tree 的高度的示例的詳細內容,更多關于MySQL innodb 的 B+tree 的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久综合九色99| 国产精品一二三四五| 欧美少妇性性性| 日韩视频在线永久播放| 三级精品在线观看| 青青草97国产精品免费观看无弹窗版| 日韩精品电影一区亚洲| 午夜久久久久久久久久一区二区| 久久超碰97中文字幕| 99麻豆久久久国产精品免费 | 综合自拍亚洲综合图不卡区| 亚洲一区二区三区四区不卡| 国产麻豆精品在线观看| 亚洲福利久久| 欧美日韩一区二区电影| 在线观看欧美亚洲| 久久av一区二区三区| 欧美裸体一区二区三区| 国产精品系列在线| 蜜桃久久久久久| 99精品欧美一区二区三区小说 | 一区二区三区中文字幕电影 | 欧美中文字幕不卡| 国产日韩欧美精品一区| 日韩在线播放一区二区| 国产盗摄女厕一区二区三区| 欧美日韩三级| 欧美日韩国产综合一区二区 | 久久青青草原一区二区| 久久看人人爽人人| 蜜臀av一区二区| 欧美日韩国产色综合一二三四| 91精彩视频在线观看| 中文幕一区二区三区久久蜜桃| 日本欧美韩国一区三区| 91麻豆自制传媒国产之光| 在线亚洲欧美专区二区| 中文字幕高清不卡| 国模少妇一区二区三区| 亚洲一区二区三区午夜| 欧美va天堂| 国产精品一区二区三区免费观看 | 国产尤物一区二区在线| 亚洲久久视频| 国产喂奶挤奶一区二区三区| 日本网站在线观看一区二区三区 | 亚洲最快最全在线视频| 欧美成人国产| 日韩精品中文字幕一区二区三区| 亚洲福利国产精品| 合欧美一区二区三区| 精品日韩成人av| 美女视频黄频大全不卡视频在线播放| 亚洲毛片一区| 国产精品久久看| 99久久精品国产网站| 欧美精品v国产精品v日韩精品| 天天色天天操综合| 亚洲一区自拍| 亚洲精品菠萝久久久久久久| 欧美日本亚洲韩国国产| 2021中文字幕一区亚洲| 国产成人精品免费视频网站| 欧美日韩五月天| 久久99热国产| 欧美日韩三级一区二区| 精品在线一区二区| 欧美日韩三级在线| 另类小说一区二区三区| 色狠狠综合天天综合综合| 一区二区三区91| 亚洲国产精选| 国产精品视频免费看| 色综合网色综合| 欧美另类亚洲| 日韩精品一区二区三区swag| 国内外精品视频| 欧美日韩午夜在线| 精品一区二区三区视频| 欧美日韩一级片在线观看| 黄色小说综合网站| 在线观看91精品国产麻豆| 狠狠色丁香久久婷婷综合_中| 欧美视频在线一区二区三区| 激情欧美一区二区| 欧美喷潮久久久xxxxx| 国模大尺度一区二区三区| 欧美日韩三级在线| 福利一区二区在线| 亚洲国产精品二十页| 很黄很黄激情成人| 亚洲伦理在线免费看| 色综合久久精品| 激情综合一区二区三区| 欧美成人乱码一区二区三区| 91女神在线视频| 亚洲欧美一区二区三区久本道91 | 日韩欧美国产系列| 成人av在线网站| 欧美国产日韩在线观看| 亚洲精华国产欧美| 免费久久精品视频| 在线播放欧美女士性生活| av电影一区二区| 中文字幕一区视频| 久久综合一区二区三区| 国产风韵犹存在线视精品| 久久亚洲精品小早川怜子| 伊伊综合在线| 久久成人免费网站| 国产亚洲精品aa| 中文有码久久| 国产精品自在欧美一区| 日本一区二区免费在线观看视频 | 日本精品裸体写真集在线观看| 国内精品写真在线观看| 国产亚洲婷婷免费| 国产精品美女xx| 国产激情一区二区三区| 欧美激情综合网| 在线一区二区视频| 91女神在线视频| 天堂蜜桃一区二区三区| 日韩欧美在线网站| 国产麻豆日韩| 岛国精品在线观看| 亚洲一区二区偷拍精品| 日韩免费看的电影| 免费永久网站黄欧美| 91香蕉视频黄| 美女免费视频一区| 国产精品三级在线观看| 色综合久久精品| 欧美 日韩 国产精品免费观看| 日日夜夜精品视频天天综合网| 久久亚洲精精品中文字幕早川悠里 | 日韩国产欧美在线观看| 久久综合九色综合97婷婷| 国产精品区一区| 99久久伊人精品| 蜜臀99久久精品久久久久久软件| 久久久综合激的五月天| 老司机亚洲精品| 欧美日韩国产三区| 国产精品亚洲综合一区在线观看| 亚洲自拍偷拍综合| 中文字幕乱码久久午夜不卡| 69堂成人精品免费视频| 一本色道久久99精品综合| 成人av电影免费观看| 男女视频一区二区| 成人欧美一区二区三区| 欧美成人精精品一区二区频| 欧美一级播放| 亚洲高清免费| 99久久精品国产导航| 狠狠色综合播放一区二区| 亚洲一区二区欧美| 国产精品成人一区二区艾草| 精品久久人人做人人爰| 欧美精品成人一区二区三区四区| 欧美亚洲一级| 99国产精品久久久久久久| 91视频精品在这里| 大白屁股一区二区视频| 精品一区二区三区影院在线午夜 | 蜜芽一区二区三区| 亚洲中国最大av网站| 亚洲图片你懂的| 国产精品美女久久久久aⅴ国产馆| 678五月天丁香亚洲综合网| 久久综合福利| 噜噜噜久久亚洲精品国产品小说| 在线观看福利一区| 欧美一区在线看| 国产成人精品一区二区三区网站观看| 日韩精品乱码免费| 日韩精品乱码免费| 男人的j进女人的j一区| 奇米色一区二区| 免播放器亚洲一区| 日本欧美久久久久免费播放网| 五月婷婷综合在线| 亚洲成av人综合在线观看| 亚洲精品成a人| 亚洲精品国产a久久久久久 | 一色屋精品亚洲香蕉网站| 国产欧美日韩中文久久| 日韩一级片在线观看| 日韩一区二区免费在线电影| 日韩一级大片在线观看| 欧美一级二级三级乱码| 日韩女优毛片在线| 久久久久久一二三区| 欧美刺激脚交jootjob| 欧美精品一区二区三区蜜桃视频| 精品av久久707| 国产欧美日韩卡一| 亚洲精品成人精品456| 视频一区视频二区中文|