美文网首页
聚簇索引的定义

聚簇索引的定义

作者: 舒小贱 | 来源:发表于2020-09-13 17:05 被阅读0次

    定义

    一直对聚簇索引的概念不是很清晰。之前的理解(包括网路上的解释),聚簇索引和非聚簇索引的区别是:
    叶子节点是否存放一整行记录

    以mysql为例:

    • innodb引擎,主键使用的是聚簇索引,非主键使用的是非聚簇索引。
    • myisam引擎,不管主键还是非主键,使用的都是非聚簇索引。
    聚簇索引与非聚簇索引.png

    并且还给了如上的示意图。

    但是我一直对这个解释存疑,不能直观的把聚簇索引的定义和innodb的主键聚簇索引联系在一起。

    直到我读到了[数据库系统内幕]这本书中对聚簇索引的\color{red}{定义}
    \color{red}{如果数据记录的顺序遵循搜索键顺序,则这种索引称为聚簇索引(clustered/clustering index)。}

    书中还详细讲解到:聚簇索引中的数据记录,通常与索引存储于同一个文件中,有时也存放在单独的聚簇文件中,而这些文件均保留了键的顺序。如果数据存储在单独的文件中,且其顺序不遵循键顺序,则索引为非聚簇索引。

    参考

    [数据库系统内幕] 2020-05第一版 p23

    相关文章

      网友评论

          本文标题:聚簇索引的定义

          本文链接:https://www.haomeiwen.com/subject/gxtoektx.html