5.2 索引相关总结

B树和B+树都是平衡的多叉查找树,
B树所有的结点都包含key和data数据,而B+树只有叶子结点存放data数据,
mysql使用B+树
聚集索引的叶子结点存储的是数据本身,非聚簇索引的叶子结点存储的是指向数据的指针。

数据库引擎innodb使用聚簇索引,但是注意辅助索引是非聚簇索引,辅助索引的叶子结点存放的是主键的值。
数据库引擎myisam使用非聚簇索引,也就是叶子结点存放的是指向数据的指针。

由此看来,聚簇索引是这样理解的,如果完整的数据和索引在一起就是聚簇的,不在一起就是非聚簇的。


唯一索引:
普通索引允许被索引的数据列包含重复的值。唯一索引不允许,我们可以使用关键字UNIQUE来定义唯一索引。
人们创建唯一索引的目的往往是为了避免数据出现重复。

覆盖索引:
一般情况下,非主键索引需要先通过辅助索引查找到主键的值,然后再通过主索引查找到数据。
覆盖索引允许我们只通过辅助索引就可以找到想要的字段值。

前缀索引:

当要索引的列字符很多时 索引则会很大且变慢
( 可以只索引列开始的部分字符串 节约索引空间 从而提高索引效率 )
建立前缀索引 以前4位字符来创建
alter table x_test add index(x_name(4));

联合索引:
联合索引:可以覆盖多个数据列,像INDEX(columnA, columnB)索引,这就是联合索引。

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

最左匹配原则:
我们在使用复合索引时,一个查询可以只使用索引的一部分,
但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,
但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值