聚簇索引和非聚簇索引

来源:互联网 发布:淘宝开店收费 编辑:程序博客网 时间:2024/06/11 14:44

InnoDB的主索引文件上,直接存放该行数据,称为聚簇索引,次索引指向对主键的引用
MyISAM中,主索引和次索引,都指向物理行(磁盘位置).

  • InnoDB

    这里写图片描述

  • MyISAM

这里写图片描述

InnoDB注意点

1: 主键索引既存储索引值,又在叶子中存储行的数据
2: 如果没有主键(primary key), 则会Unique key做主键
3: 如果没有unique,则系统生成一个内部的rowid做主键.
4: 像innodb中,主键的索引结构中,既存储了主键值,又存储了行数据,这种结构称为”聚簇索引”

聚簇索引

优势: 根据主键查询条目比较少时,不用回行(数据就在主键节点下)
劣势: 如果碰到不规则数据插入时,造成频繁的页分裂.详细请查看:页分裂

回行的概念

在myisam中,假设需要根据主键查,主索引指向物理行,所以会去查找物理文件中的行数据,称为回行
在innodb中,假设不根据主索引查,主索引保存该行数据,如果根据次索引查,次索引指向主索引,次索引查找主索引并获得数据称为回行

0 0