mysql聚簇索引 非聚簇索引 覆盖索引 联合索引

mysql聚簇索引 非聚簇索引 覆盖索引 联合索引,第1张

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

--(除此之外的表上的每个非聚簇索引都是 ,又叫辅助索引(secondary indexes))

————————————————

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

————————————————

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

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

————————————————

4 联合索引又叫复合索引。

对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 。

普通索引:一个索引只包含一个列,一个表可以有多个单列索引

唯一索引:索引列的值必须唯一,但允许有空值

复合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

聚簇索引:也可以称为主键索引,是一种数据存储方式,B+树结构,一张表只能有一个聚簇索引

非聚簇索引:顾名思义,不是聚簇索引。

非聚集索引:也叫 Secondary Index。指的是非叶子节点按照索引的键值顺序存放,叶子节点存放索引键值以及对应的主键键值。MySQL 里除了 INNODB 表主键外,其他的都是二级索引。MYISAM,memory 等引擎的表索引都是非聚集索引。简单点说,就是索引与行数据分开存储。一张表可以有多个二级索引。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7229952.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存