2.1索引的数据结构是什么
b-树
b+树
优化后的b+树(一般数据库的索引都对b+树进行了优化,加了顺序访问的指针)
2.2 myism存储引擎的索引实现
先来看看myisam存储引擎的索引实现。就拿上面那个图,咱们来现场手画一下这个myisam存储的索引实现,在myisam存储引擎的索引中,每个叶子节点的data存放的是数据行的物理地址,比如0x07之类的东西,然后我们可以画一个数据表出来,一行一行的,每行对应一个物理地址。
索引文件
id=15,data:0x07,0a89,数据行的物理地址
数据文件单独放一个文件
select * from table where id = 15 -> 0x07物理地址 -> 15,张三,22
myisam最大的特点是数据文件和索引文件是分开的,大家看到了么,先是索引文件里搜索,然后到数据文件里定位一个行的。
2.3 innodb存储引擎的索引
好了,再来看看innodb存储引擎的索引实现,跟myisam最大的区别在于说,innodb的数据文件本身就是个索引文件,就是主键key,然后叶子节点的data就是那个数据的所在行。我们还是用上面那个索引起来现场