SQL聚集索引和非聚集索引的区别

如题所述

聚集索引:

将正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”

非聚集索引:

将目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”


何时使用聚集索引或非聚集索引?


举个例子:

返回某范围内的数据一项。

某个表有一个时间列,把【聚合索引】建立在该列,这时查询2017年1月1日至2017年8月1日之间的全部数据时,这个速度是很快的,因为这本字典正文是按日期进行 排序的,聚类索引只需要找到要检索的所有数据中的开头和结尾数据即可。

而不像非聚集索引,必须先查到目录中查到每一项数据对应的页码,然后再根据页码查到 具体内容。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-01
聚集索引:也称 Clustered Index。是指关系表记录的物理顺序与索引的逻辑顺序相同。由于一张表只能按照一种物理顺序存放,一张表最多也只能存在一个聚集索引。与非聚集索引相比,聚集索引有着更快的检索速度。
MySQL 里只有 INNODB 表支持聚集索引,INNODB 表数据本身就是聚集索引,也就是常说 IOT,索引组织表。非叶子节点按照主键顺序存放,叶子节点存放主键以及对应的行记录。所以对 INNODB 表进行全表顺序扫描会非常快。
非聚集索引:也叫 Secondary Index。指的是非叶子节点按照索引的键值顺序存放,叶子节点存放索引键值以及对应的主键键值。MySQL 里除了 INNODB 表主键外,其他的都是二级索引。MYISAM,memory 等引擎的表索引都是非聚集索引。简单点说,就是索引与行数据分开存储。一张表可以有多个二级索引。
关键词:爱可生、开源数据库、数据监测、数据库运维
相似回答