MYI 文件内容

参考 http://blog.itpub.net/703656/viewspace-1018470/

 

创建表结构

create table test(name char(20), age int, class int);

create index idx_name on test(name);

create index idx_age_class on test(age, class);

insert into test values('张三', 15, 1);

insert into test values('李四', 20, 2);

insert into test values('王五', 30, 3);

 

.MYI文件包括两部分

一 头信息

二 KEY信息

 

头信息包括

 header_lenght 头长度

 keys 索引个数

 records  没有被delete的记录个数

 del 被删除记录个数

 dellink 下一个黑洞

 key_file_length .MYI文件大小

 data_file_length .MYD文件大小

 key_root 这是个数组,值为索引本身所在的block在文件中的offset,每一个block时会放许多的key

 

key信息

=============针对索引idx_name==============

 keydef->keysegs   1 单独索引

 keydef->block_length 1024

 keydef->key_length  sizeof(name)+sizeof(rowid)

 keyseg->type 文本

 keyset->start  索引idx_name在insert记录中的offset 

 

===========针对联合索引idx_age_class===========

 keydef->keysegs 2 联合索引(age, class)

 keydef->block_length 1024字节

 keydef->key_length sizeof(age)+sizeof(class)+sizeof(rowid)

//针对age

 keyseg->type 数字

 keyseg->start   age字段在insert记录中的offset

//针对class

keyseg->type 数字

keyseg->start  class字段在insert记录中的offset

 

对于idx_age_class所在的block

第一个关键字 value 15,1

第二个关键字 value 20,2

第三个关键字 value 30,3

 

第一个关键字 pointer  001 行指针

第二个关键字 pointer  003 行指针

第三个关键字 pointer  005 行指针

 

 

 

 

posted @ 2015-08-10 15:40  taek  阅读(440)  评论(0编辑  收藏  举报