目的分析:MySQLIDB文件的具体结构
2核心语句
SELECT A.SPACE AS TBL_SPACEID,A.TABLE_ID,A.NAME AS TABLE_NAME,FILE_FORMAT,ROW_FORMAT,SPACE_TYPE,
三基础
由于mysql隐式识别页面大小为16K,因此以下参数均为16
四具体用法:
1 ./innblock table.idb scan 16显示所有索引
我们可以得到的内容
1数据文件总大小
2 INDEX_ID (其中的INDEX_ID准确匹配sql语句查询的结果) )。
3blockno(page_no,可以据此分析如下)
2 /innblock table.idb page_no 16查看具体的数据页面配置
我们可以得到的内容
1 block_no: page_no_id
2 space_ID:表空间id
3 index_ID:索引页面id
4 n_rows:的具体行数中不包括deleted,而是由purged记录的
5 del_bytes:此索引页上所有已删除和已purged记录的总大小。
链表
已标记为totaldelrows :1 delrowslist (logic ) :purge将记录在此处
五总结
这篇文章的内容来源于八怪大神的帮助文档。 我只是做了自学的记录,请谅解
六补充
如何计算表索引中b树的高度
根据上述sql语句搜索关键记录page_no - primary
1 B树的高度为page_no 1
2 B树的高度决定了进行多少次IO操作,数千万行的高度可能与数百万行的高度相同
3B树的高度通常是1-3
4主页编号表示主键索引的根页