深入理解Mysql索引的底层数据结构 B+ Tree (2)
程序员文章站
2022-03-02 19:11:49
sql查询 explain的详细用法 操作时间:寻道时间+旋转时间 引入索引:采用二叉树结构 把第二列做为索引生成二叉树结构,此时查询89 只做了两次io操作 但是mysql 为什么不用二叉树作为底层索引结构? 红黑树 hash where col1 > 6 如果使用哈希结构无法使用索引 mysql ......
sql查询 explain的详细用法
操作时间:寻道时间+旋转时间
引入索引:采用二叉树结构
把第二列做为索引生成二叉树结构,此时查询89 只做了两次io操作
但是mysql 为什么不用二叉树作为底层索引结构?
红黑树
hash
where col1 > 6 如果使用哈希结构无法使用索引
mysql b+ tree的每一个节点的大小正好是磁盘逻辑块的页大小 4kb。分配节点时不管用不用的了都正好分配1页的大小4kb,这样这些数据在物理磁盘上就是连续的。
叶子节点的指针利于预读操作。
mysql的索引文件到底存在哪里?
索引就是文件
默认存储引擎 innodb
myisam:
后缀 .frm表结构文件
后缀 .myd数据文件
后缀 .myi 索引文件
inodb:
.frm 表结构文件
.ibd 索引+数据
联合索引