mysql innodb索引高度
首先獲取表上的索引情況
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='ming/test02';
+-------------+---------------+----------+------+-------+---------+
| name | name | index_id | type | space | PAGE_NO |
+-------------+---------------+----------+------+-------+---------+
| ming/test02 | PRIMARY | 71 | 3 | 44 | 3 |
| ming/test02 | idx_test02_c2 | 400 | 0 | 44 | 39 |
+-------------+---------------+----------+------+-------+---------+
2 rows in set (0.85 sec)
type:
0 是非唯一二級索引。
3是聚簇索引。
1是automatically generated clustered index (
GEN_CLUST_INDEX
);
2是unique nonclustered index;唯一的非聚簇索引
32是全文索引。
mysql> show global variables like 'innodb_page_size';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.67 sec)
接下來要用到作業系統命令hexdump,以十六進位制檢視檔案
語法
hexdump [選項] [檔案]...
選項
-n length 只格式化輸入檔案的前length個位元組。
-C 輸出規範的十六進位制和ASCII碼。
-b 單位元組八進位制顯示。
-c 單位元組字元顯示。
-d 雙位元組十進位制顯示。
-o 雙位元組八進位制顯示。
-x 雙位元組十六進位制顯示。
-s 從偏移量開始輸出。
-e 指定格式字串,格式字串包含在一對單引號中,格式字串形如:'a/b "format1" "format2"'。
檢視索引高度
[root@mdb01 ming]# hexdump -s 49216 -n 10 ./test02.ibd
000c040 0200 0000 0000 0000 4700
000c04a
[root@mdb01 ming]# hexdump -s 639040 -n 10 ./test02.ibd
009c040 0200 0000 0000 0000 9001
009c04a
指定的偏移量的計算公式是page_no * innodb_page_size + 64。
49216 = 3 * 16384 +64.
PAGE_LEVEL 的值為 0200,表示這棵二級索引樹的高度為 3(2+1)。
後面的4700和9001是索引的index_id。
作業系統上十六進位制轉十進位制:
[root@mdb01 ming]# echo $((0x47))
71
[root@mdb01 ming]# echo $((0x0190))
400
9001的讀取順序,應該是按照 兩位為一組,倒著讀
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31480688/viewspace-2699790/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL InnoDB 索引MySql索引
- 探索MySQL的InnoDB索引失效MySql索引
- 搞懂MySQL InnoDB B+樹索引MySql索引
- MySQL InnoDB的索引擴充套件MySql索引套件
- MySQL InnoDB搜尋索引的StopwordsMySql索引
- 【Mysql】InnoDB 中的聚簇索引、二級索引、聯合索引MySql索引
- Mysql innodb引擎(一)緩衝和索引MySql索引
- www.xttblog.com MySQL InnoDB 索引原理MySql索引
- 【Mysql】InnoDB 中的 B+ 樹索引MySql索引
- MySQL innodb如何選擇一個聚簇索引MySql索引
- MySQL中InnoDB引擎對索引的擴充套件MySql索引套件
- innodb索引篇索引
- innodb 引擎索引 (一)索引
- InnoDB 索引詳解索引
- MySQL中Innodb如何計算索引的統計資訊?MySql索引
- 《MySQL實戰45講》學習筆記4——MySQL中InnoDB的索引MySql筆記索引
- 一分鐘掌握MySQL的InnoDB引擎B+樹索引MySql索引
- 淺析InnoDB引擎的索引和索引原理索引
- InnoDB索引與底層原理索引
- MySQL Deadlocks in InnoDBMySql
- Mysql InnoDB B+樹索引和雜湊索引的區別? MongoDB 為什麼使用B-樹?MySql索引MongoDB
- 關於MySQL InnoDB表的二級索引是否加入主鍵的總結MySql索引
- MySQL InnoDB update流程MySql
- InnoDB學習(七)之索引結構索引
- InnoDB學習(八)之 聚簇索引索引
- 從InnoDB 索引執行簡述 聚集索引和非聚集索引、覆蓋索引、回表、索引下推索引
- mysql索引之字首索引MySql索引
- ElasticSearch 索引 VS MySQL 索引Elasticsearch索引MySql
- mysql索引MySql索引
- [Mysql]索引MySql索引
- MySQL 索引MySql索引
- MySQL — 索引MySql索引
- Mysql innodb引擎(二)鎖MySql
- MySQL InnoDB儲存引擎MySql儲存引擎
- MySQL InnoDB髒頁管理MySql
- MySQL 5.7 InnoDB Tablespace EncryptionMySql
- MySQL InnoDB緩衝池MySql
- 談談InnoDB中的B+樹索引索引