IT袋

当前位置:主页 > 经验教程 > 建站编程 >

什么是数据库索引

什么是数据库索引 有哪些分类以及优缺点?(2)

时间:2023-09-23 14:35:46 来源:IT袋 作者:苏晓敏
导读:什么是数据库索引,B tree和B-tree的区别 B tree的根节点和枝结点不存储数据,只存储指针之类的,只有叶子结点存储数据 B-tree的各个节点都存储数据 聚簇索引 一个表只能有一

什么是数据库索引

B tree和B-tree的区别

B tree的根节点和枝结点不存储数据,只存储指针之类的,只有叶子结点存储数据 B-tree的各个节点都存储数据

聚簇索引

一个表只能有一个聚簇索引,叶子结点上存放的是行数据。

非聚簇索引

一个表可以有多个非聚簇索引,非聚簇索引的叶子结点上面是所包含的列以及聚簇索引的主键

索引失效

1、 违背了最左前缀规则导致索引失效;

2、 在索引列上进行计算,函数,类型转换 导致索引失效

3、不等于 != <> 索引失效

解决方法:使用覆盖索引(select 的字段都在索引列上)

4、 like 以通配符 %为开头的索引失效

5、隐性转换,比如字符串数字 ‘1’不加引号

6、or的前后条件只要有一个不是索引字段都不走索引

7、通过索引扫描的行记录数超过全表的10%~30%左右,优化器不会走索引,而变成全表扫描

回表查询

当我们通过非聚簇索引查询数据的时候首先查到的是聚簇索引的主键,然后根据主键再去查询聚簇索引得到行数据,这个过程我们也称之为回查

索引覆盖

当我们通过非聚簇索引查询数据的时候发现要查询的数据在非聚簇索引里面都存在,那么就不需要再去查询聚簇索引,这个也称之为索引覆盖。

上述的关于什么是数据库索引 以及 有哪些分类以及优缺点的全部内容,网友们不妨在这方面予以借鉴

相关阅读