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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

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

前言

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

示例數(shù)據(jù)準(zhǔn)備

建表語(yǔ)句如下:

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萬(wàn)條數(shù)據(jù)。數(shù)據(jù)如下:

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)

通過(guò)查詢相關(guān)數(shù)據(jù)表獲取樹的高度

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

首先獲取 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頁(yè)的序列號(hào)。其它各項(xiàng)的含義可以參照:https://dev.mysql.com/doc/refman/5.6/en/innodb-sys-indexes-table.html

再讀取頁(yè)的大小

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

可以發(fā)現(xiàn) PAGE_LEVEL 為 0200,表示這棵二級(jí)索引樹的高度為 3。后面的 1600 是索引的 index_id 值。十六進(jìn)制的 16 轉(zhuǎn)換為十進(jìn)制數(shù)字是 22。這個(gè) 22 正好就是上面主鍵的 index_id。上面 hexdump 命令中 49216 是怎么算出來(lái)的?公式是 page_no * innodb_page_size + 64。3*16384+64=49216

我們?cè)谟眠@個(gè)方式查看下其他兩個(gè)索引的高度。

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

可見(jiàn),name 索引的高度是 2,age 索引的高度是 3。

根據(jù)索引的結(jié)構(gòu)估算

如果你沒(méi)有數(shù)據(jù)庫(kù)服務(wù)器的權(quán)限。自己也可以根據(jù)數(shù)據(jù)庫(kù)索引結(jié)構(gòu)進(jìn)行估算樹的高度。根據(jù) B+Tree 結(jié)構(gòu),非葉子節(jié)點(diǎn)存儲(chǔ)的是索引數(shù)據(jù),葉子節(jié)點(diǎn)存儲(chǔ)的是每行的所有數(shù)據(jù)。非葉子節(jié)點(diǎn)每個(gè)索引項(xiàng)的大小是,數(shù)據(jù)大小+指針大小。假設(shè)指針大小為 8 個(gè)字節(jié)。每頁(yè)不會(huì)被占滿,預(yù)留1/5的空隙。下面我們估算下 name 和 age 兩個(gè)索引的高度。

name 索引高度估算

非葉子節(jié)點(diǎn)每頁(yè)存放的索引項(xiàng)數(shù)量。每頁(yè)大小是 16k。name 的值為 ab。占2個(gè)字節(jié)。每項(xiàng)數(shù)據(jù)大小是 2+8=10字節(jié)。每頁(yè)能存放的索引項(xiàng)數(shù)量是 16384 * 0.8 / 10 = 1310 個(gè)。葉子節(jié)點(diǎn)每頁(yè)存放的索引數(shù)量。每頁(yè)大小是 16k。每項(xiàng)數(shù)據(jù)大小是 4+2+8=14 個(gè)字節(jié)。沒(méi)頁(yè)能存放的索引數(shù)量是 16384 * 0.8 / 14 = 936 個(gè)。兩層能存放 1310*936=1226160 個(gè)數(shù)據(jù)記錄。可見(jiàn)120萬(wàn)條記錄以下,樹的高度為2。

age 索引高度估算

非葉子節(jié)點(diǎn)每頁(yè)存放的索引項(xiàng)數(shù)量。每頁(yè)大小是 16k。age 的類型為 int。占4個(gè)字節(jié)。每項(xiàng)數(shù)據(jù)大小是 4+8=12字節(jié)。每頁(yè)能存放的索引項(xiàng)數(shù)量是 16384 * 0.8 / 12 = 1092 個(gè)。葉子節(jié)點(diǎn)每頁(yè)存放的索引數(shù)量。每頁(yè)大小是 16k。每項(xiàng)數(shù)據(jù)大小是 4+4+8=16 個(gè)字節(jié)。沒(méi)頁(yè)能存放的索引數(shù)量是 16384 * 0.8 / 16 = 819 個(gè)。兩層能存放 1092*819=894348 個(gè)數(shù)據(jù)記錄。可見(jiàn)90萬(wàn)條記錄以下,樹的高度為2。100萬(wàn)條為 3 層。

其它工具

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

以上就是獲取 MySQL innodb 的 B+tree 的高度的示例的詳細(xì)內(nèi)容,更多關(guān)于MySQL innodb 的 B+tree 的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品88| 一本色道精品久久一区二区三区| 日韩欧美视频专区| 久久精品国产在热久久| 久久精品凹凸全集| 久久国际精品| 欧美日韩一区二区国产| 日韩不卡手机在线v区| 久久伦理在线| 欧美日韩激情在线一区二区三区| 九九久久婷婷| 免费在线看一区| 亚洲精品护士| 老鸭窝一区二区久久精品| 国产精品**亚洲精品| 麻豆成人在线观看| 色偷偷偷在线视频播放| 国模 一区 二区 三区| 日韩在线一二三区| 国产精品男女| 欧产日产国产精品视频| av亚洲免费| 亚洲精品进入| 国产欧美日韩亚洲一区二区三区| 欧美一区二区三区久久精品| 精品国产中文字幕第一页| 亚洲婷婷在线| 国产图片一区| 99久久婷婷这里只有精品| 亚洲中午字幕| 国产精品videossex| 日韩在线综合| 日本在线不卡视频| 日韩中文影院| 日本午夜精品久久久久| 日韩精品欧美| 国产精品久久国产愉拍| 欧美午夜精彩| 卡一卡二国产精品| 日韩国产综合| 国产精品流白浆在线观看| 国产一区亚洲| 精品91福利视频| 91大神在线观看线路一区| 香蕉精品久久| 国精品产品一区| 奇米狠狠一区二区三区| 欧美国产91| 日韩在线第七页| 精品国产亚洲日本| 久久国产尿小便嘘嘘| 欧美二区视频| 日韩国产一区| 日韩精品一级二级| 蜜臀av亚洲一区中文字幕| 国产精品精品| 精品一区二区三区的国产在线观看| 免费日本视频一区| 亚洲一区二区三区高清| 国产传媒在线观看| 久久香蕉网站| 91精品美女| 日本综合视频| 天堂va在线高清一区| 视频在线观看一区二区三区| 91精品国产91久久久久久黑人| 国产一区日韩| 久久只有精品| 水蜜桃久久夜色精品一区| 日韩综合一区二区| 亚洲欧美网站在线观看| 亚洲欧美日韩在线观看a三区| 午夜国产精品视频| 美女久久网站| 亚洲精品免费观看| 91成人福利| 国产精品22p| 97精品国产一区二区三区| 日韩免费福利视频| 久久久影院免费| 国产毛片久久| 日韩av不卡在线观看| 国产精品视频一区二区三区| 欧美国产中文高清| 国产剧情一区二区在线观看| 国产精品密蕾丝视频下载| 欧美激情福利| 日韩精品网站| 一区二区高清| 国产精品66| 伊人久久成人| 日韩av电影一区| 日韩美女一区二区三区在线观看| 久久亚洲在线| 91p九色成人| 久久免费高清| 国产香蕉精品| 好看的av在线不卡观看| 国产精品一级在线观看| 欧美日韩视频免费看| 中文字幕高清在线播放| 免费一区二区视频| 超级白嫩亚洲国产第一| 一区二区三区四区日韩| 福利一区和二区| 亚洲三区欧美一区国产二区| 中文字幕在线免费观看视频| 免费久久99精品国产| 国产在视频一区二区三区吞精| 亚洲一区二区免费看| 成人在线视频中文字幕| 亚洲精选久久| 亚洲欧美日韩国产一区| 国产中文欧美日韩在线| 欧美69视频| 中文在线中文资源| 国产亚洲久久| 伊人久久亚洲| 黄色日韩在线| 啪啪国产精品| 日韩黄色大片| 精品淫伦v久久水蜜桃| 日韩av影院| 亚洲自拍另类| 欧美不卡视频| 欧美天堂视频| 丰满少妇一区| 国语对白精品一区二区| 你懂的网址国产 欧美| 亚洲一区亚洲| 欧美在线亚洲| 亚洲欧美日韩国产综合精品二区| 久久久久久久久久久9不雅视频| 成人在线超碰| 亚洲风情在线资源| 亚洲啊v在线| 亚洲欧洲一区二区天堂久久| 九九久久婷婷| 亚洲日本国产| 美女视频黄免费的久久| 美女国产一区二区三区| 精品久久精品| 99精品电影| 欧美综合国产| 亚洲一区欧美二区| 日韩一二三区在线观看| 国产精品久久免费视频| 国产精品网址| 国产精品精品| 9色国产精品| 欧美一区二区三区久久| 精品久久网站| 一区在线免费| 国产精品入口久久| 久久久久国产精品一区二区| 亚洲一区国产| 国产精品久一| 欧美91精品| 91精品国产自产精品男人的天堂| 日韩三区四区| 国产不卡精品| 国产视频一区三区| 日本午夜精品视频在线观看| 高清av一区| 日韩精品欧美精品| 国产网站在线| 日本欧美在线| 午夜日韩av| 久久亚洲道色| 亚洲理论在线| 欧美精品成人| 亚洲精品字幕| 久久精品高清| 成人在线黄色| 亚洲激情黄色| 福利视频一区| 日本亚洲最大的色成网站www| 欧美日韩精品免费观看视完整| 奇米狠狠一区二区三区| 99re国产精品| 99国产精品免费视频观看| 国产精品videossex久久发布 | 欧美特黄a级高清免费大片a级| 日韩一区二区三区精品| 精品国产99| 国产黄色精品| 99精品视频在线观看免费播放| 欧美精品1区| 国产日韩欧美一区二区三区| 蜜乳av另类精品一区二区| 色爱av综合网| 日韩av自拍| 日产午夜精品一线二线三线| 国产精品91一区二区三区| 精品国产欧美日韩一区二区三区| 久久精品国产99国产精品| 高清一区二区| 日韩专区精品| 日本中文字幕一区二区视频 | 日本亚洲视频在线|