聚簇索引、非聚簇索引、覆盖索引

末蓝、 2022-07-17 01:30 312阅读 0赞

http://blog.csdn.net/arkblue/article/details/26395959

1 聚簇索引:clustered index 其实数据存储结构,索引和记录(全部)内容保存同一个结构中。“聚簇”就是索引和记录紧密在一起,分开就不是聚簇索引了,所以一张表只能有唯一的聚簇索引。附带问,能有多少二级索引呢?为什么?

2 非聚簇索引:secondary index ,叶子节点保存了主键值,要定位记录还要再查一遍聚簇索引。

3 覆盖索引:覆盖索引是指索引的叶子节点已包含所有要查询的列,因此不需要访问表数据(回表~~有学个名词,查询聚簇索引)

查找时能不能直接定位:聚簇索引的叶节点就是数据节点,而非聚簇索引的页节点仍然是索引检点,并保留一个链接指向对应数据块。

物理排序:聚簇索引对数据进行物理的排序,非聚簇索引不对数据进行物理排序

参考追风刀这个,实例分析聚簇索引不一定比非聚簇索引快~~~:

聚簇索引、非聚簇索引、覆盖索引 例子:http://csrd.aliapp.com/?p=406\#more-406

覆盖索引:http://blog.csdn.net/dbanote/article/details/16822687

使用聚簇索引导致了全表扫描,加载每一页数据,使用非聚簇索引的sql语句使用范围查询缩小了范围。

一些DBMS允许用户指定聚簇索引,但是MySQL的存储引擎到目前为止都不支持。InnoDB对主键建立聚簇索引。如果你不指定主键,InnoDB会用一个具有唯一且非空值的索引来代替。如果不存在这样的索引,InnoDB会定义一个隐藏的主键,然后对其建立聚簇索引。

发表评论

表情:
评论列表 (有 0 条评论,312人围观)

还没有评论,来说两句吧...

相关阅读

    相关 索引索引的介绍

    聚簇索引和非聚簇索引是数据库中两种不同的索引结构。 聚簇索引是一种基于数据行的索引。它将表中的记录按照指定的列排序,并将这些记录存储在一起形成一个聚簇。聚簇索引只能创建在表的

    相关 索引索引

    1.定义: 不是单独的索引类型,而是一种数据存储方式。 一般建表会用一个自增主键做聚簇索引,没有的话MySQL会默认创建。我们日常工作中,根据实际情况自行添加的索引都是

    相关 MySQL 索引索引

    聚簇索引就是对磁盘上的实际数据重新组织以按照特定的一个或者多个列的值排序的算法 特点是存储数据的顺序和索引顺序一致 一般情况下主键会默认生成聚簇索引 且一张表有且只有一个聚簇

    相关 MySQL:索引索引

    聚簇索引就是对磁盘上的实际数据重新组织以按照特定的一个或者多个列的值排序的算法。特点是存储数据的顺序和索引顺序一致 一般情况下主键会默认生成聚簇索引 且一张表有且只有一个聚簇索