日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:449日期: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 個數據記錄。可見120萬條記錄以下,樹的高度為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 個數據記錄。可見90萬條記錄以下,樹的高度為2。100萬條為 3 層。

其它工具

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

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

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲一区二区三区高清不卡| 久久精品免费一区二区三区| 日本不卡视频一二三区| 欧美日韩国产免费观看| 久久久男人天堂| 日韩大片在线观看| 91精品国产调教在线观看| 精品视频网站| 日韩中文首页| 欧美特黄一区| 亚洲三级精品| 麻豆成人91精品二区三区| 欧美另类中文字幕| 国产精品日本一区二区三区在线 | 久久久久亚洲精品中文字幕| 国产一区二区三区四区大秀| 国户精品久久久久久久久久久不卡 | 国产亚洲一卡2卡3卡4卡新区| 麻豆国产91在线播放| 成人片免费看| 亚洲视频播放| 欧美亚洲免费| 久久久噜噜噜| 免费的成人av| 老牛国内精品亚洲成av人片| 久久av国产紧身裤| 91精品一区二区三区综合在线爱| 欧美精品九九| 国产一区二区三区不卡av| 亚洲一二av| 高清av一区| 免费的成人av| 国产v综合v| 国产精品片aa在线观看 | 电影91久久久| 免费久久精品| 麻豆精品蜜桃视频网站| 日本高清不卡一区二区三区视频| 日韩高清国产一区在线| 欧美1区2区3| 亚洲一二三区视频| 日韩在线短视频| 日本综合精品一区| 香蕉国产精品| 中文字幕在线看片| 91国内精品| 爽好久久久欧美精品| 欧美日韩激情| 久久久男人天堂| 国产精品三p一区二区| 中文一区一区三区免费在线观 | 久久蜜桃精品| 日本欧美一区二区| 爽好多水快深点欧美视频| 久久久久久色 | 中文字幕色婷婷在线视频| 日韩一区二区久久| 国产高清不卡| 欧美日韩精品免费观看视欧美高清免费大片 | 日韩av首页| 日韩综合一区| 麻豆91在线播放| 欧美亚洲专区| 国产精品成人自拍| 麻豆视频久久| 精品一区二区三区亚洲| 免费看久久久| а√天堂8资源在线| 国产福利电影在线播放| 日韩久久视频| 日韩中文视频| 91精品国产调教在线观看| 午夜国产一区二区| 久久不射中文字幕| 亚洲精品影视| 国产精品久久久久久久久久久久久久久| 综合激情网站| 精品色999| 蜜臀av免费一区二区三区| 亚洲另类av| 国产精品调教| 热三久草你在线| 亚洲少妇一区| 欧美在线看片| 欧美精选视频一区二区| 亚洲欧美激情诱惑| 亚洲深爱激情| 国产一区二区三区四区二区| 亚洲一级影院| 国产私拍福利精品视频二区| 视频福利一区| 亚洲一二av| 老牛国内精品亚洲成av人片 | 91精品国产91久久久久久黑人| 中文精品电影| 97精品一区二区| 日韩中文字幕在线一区| 成人高清一区| 亚洲精品极品少妇16p| 亚洲1区在线观看| 国产欧洲在线| 日韩精品中文字幕一区二区| 亚洲四虎影院| 欧美亚洲国产日韩| 亚洲综合在线电影| 国产精品一页| 日韩欧美在线精品| 夜夜嗨一区二区| 国产精品二区不卡| 欧美伊人影院| 亚洲成人免费| 国产欧美一区二区三区精品酒店| 日韩av网站免费在线| 日韩欧美另类一区二区| 亚洲伊人精品酒店| 久久亚洲精品中文字幕蜜潮电影| 清纯唯美亚洲综合一区| 一区二区视频欧美| 极品av在线| 麻豆精品视频在线| 啪啪亚洲精品| 97精品国产99久久久久久免费| 欧美成人日韩| 亚洲国产福利| 精品三级久久久| 亚洲区第一页| 中文字幕成人| 美女国产精品| 日韩在线不卡| 国产乱论精品| 国产欧美一区二区精品久久久| 久久成人亚洲| 日本午夜免费一区二区| 91福利精品在线观看| 日本特黄久久久高潮| 亚洲精一区二区三区| 亚洲精品亚洲人成在线观看| 中文字幕亚洲影视| 欧美日韩伊人| 亚洲1区在线观看| 久久国产麻豆精品| 国产精品毛片视频| 色老板在线视频一区二区| 国产精品白丝一区二区三区| 国产日韩免费| 久久亚洲黄色| 欧美二三四区| 国产一级一区二区| 国产美女久久| 88xx成人免费观看视频库| 日韩a一区二区| jiujiure精品视频播放| 亚洲欧美日韩国产综合精品二区| 另类亚洲自拍| 精品无人区麻豆乱码久久久| 日韩欧美字幕| 日韩av中文字幕一区二区 | 日韩一区欧美二区| 91亚洲精品在看在线观看高清| 欧美精品三级在线| 日韩深夜视频| 日韩中文字幕亚洲一区二区va在线| 亚洲一区导航| 国产精品一区二区免费福利视频| 国产成人久久精品一区二区三区| 午夜日本精品| 欧美日韩99| 日本精品影院| 亚洲免费专区| 久久精品av| 日韩88av| 国产精品美女在线观看直播| 精品国产乱码久久久久久1区2匹| 极品日韩av| 国产日韩1区| 亚洲精品看片| 另类中文字幕国产精品| 日韩精品导航| 日韩三级一区| 91久久午夜| 国产一区二区色噜噜| 日韩国产欧美在线播放| 亚洲福利免费| 日本а中文在线天堂| 国产精品1luya在线播放| 一区二区电影在线观看| 婷婷色综合网| 精品一区二区三区免费看| 女人av一区| 蜜桃视频在线网站| 免费亚洲婷婷| 欧美精品97| 欧美天堂在线| 亚洲一二三区视频| 久久精品亚洲欧美日韩精品中文字幕| 美女高潮久久久| 成人片免费看| 中文字幕一区久| 日韩欧美一区二区三区免费看| 国产日韩1区|