数据库的索引

本文深入解析数据库索引的概念,探讨其优点与缺点,包括提升查询效率、保证数据唯一性及加快连接速度等优势,同时也讨论了索引创建与维护的成本。文章还详细介绍了索引的类型,如普通索引、唯一索引、主键索引等,以及索引的原理,基于B+树的结构优化。

数据库索引

索引面试知识性问题:

一、什么是索引

索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。

关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。(取自百度百科)

简单来说,索引就是由一列或多列组成的一种存储结构。

二、索引的优点:为什么要创建索引?

1.保证行的唯一性(主键索引或唯一索引)。
2.提高检索(查询)效率(普通索引等)。
3.加快两表之间的连接(外键索引)。
4.提高分组和排序的字段的效率。

三、索引的缺点

总结来说:索引的创建和维护耗费时间和空间,降低增删改的效率。

1.创建和维护索引的时间成本随数据量的增加而不断加大。
2.创建和维护索引的空间成本随数据量的增加而不断加大,每一条索引都要占据数据库的物理存储空间(数据表占据的是数据库的数据空间)。
3.降低增删改的效率,因为每次增删改,索引都要改变,导致时间变长。

四、何时使用索引

1.表的数据量大,且经常进行查询操作。
2.用于排序和分组的字段添加索引。
3.两表连接用于多表联合查询的约束条件的字段要建立索引。
4.确保某一列数据不重复时添加索引。

五、索引的类型有哪些

1.普通索引:最基本的索引类型,没有唯一性之类的限制。
2.唯一索引:唯一索引是不允许其中任何两行具有相同索引值的索引。
3.主键索引:简称为主索引,数据库表中一列或列组合(字段)的值唯一标识表中的每一行。该列称为表的主键。
4.候选索引:与主索引一样要求字段值的唯一性,并决定了处理记录的顺序。
5.聚集索引:也称为聚簇索引,在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
6.非聚集索引:也叫非簇索引,在非聚集索引中,数据库表中记录的物理顺序与索引顺序可以不相同。一个表中只能有一个聚集索引。

六、索引的原理

B+树——经过优化的B+树,在所有的叶子结点中增加了指向下一个叶子节点的指针,因此InnoDB(存储引擎)建议为大部分表使用默认自增的主键作为主索引。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值