mssql聚集索引和非聚集索引的区别
发布网友
发布时间:2022-04-22 04:18
我来回答
共2个回答
热心网友
时间:2022-04-08 09:47
聚集索引:也称 Clustered Index。是指关系表记录的物理顺序与索引的逻辑顺序相同。由于一张表只能按照一种物理顺序存放,一张表最多也只能存在一个聚集索引。与非聚集索引相比,聚集索引有着更快的检索速度。
MySQL 里只有 INNODB 表支持聚集索引,INNODB 表数据本身就是聚集索引,也就是常说 IOT,索引组织表。非叶子节点按照主键顺序存放,叶子节点存放主键以及对应的行记录。所以对 INNODB 表进行全表顺序扫描会非常快。
非聚集索引:也叫 Secondary Index。指的是非叶子节点按照索引的键值顺序存放,叶子节点存放索引键值以及对应的主键键值。MySQL 里除了 INNODB 表主键外,其他的都是二级索引。MYISAM,memory 等引擎的表索引都是非聚集索引。简单点说,就是索引与行数据分开存储。一张表可以有多个二级索引。
热心网友
时间:2022-04-08 11:05
SQL SERVER提供了两种索引:聚集索引和非聚集索引。其中聚集索引表示表中存储的数据按照索引的顺序存储,检索效率比非聚集索引高,但对数据更新影响较大。非聚集索引表示数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置,非聚集索引检索效率比聚集索引低,但对数据更新影响较小。
换个形象一点的说话:
新华字段熟悉吧。把新华字典当成一个表,里面的每个字的解释介绍当成表里的一行记录。
然后索引就类似于字典中的找字目录,对应的,聚集索引就类似于新华字段里的拼音目录(对应的后续的逗字/记录地排序也是按照拼音来排序的),而非聚集索引就类似于部首目录(逗字/记录地并不是按照偏旁部首来排列的,但是你也能根据此目录定位到逗字/记录地的位置)。