数据库的索引

目录

1. 索引是什么?它是解决什么问题的

2. 索引的缺陷

3. 如何使用sql创建索引,及其注意事项

4. 索引的底层数据结构 =》B+树的优势和特点


1. 索引是什么?它是解决什么问题的

数据库的索引可以类比成一本书的目录,创建素引之后,它能够大大提高我们的查询速度。

2. 索引的缺陷

a) 创建索引需要使用到额外的硬盘空间

b) 可能会影响到增删改操作的效率(不一定会影响)

因此,就整体来说,使用索引是利大于弊的,它能大大提高我们日常开发效率,我们在日常开发中也会经常使用到它。

3. 如何使用sql创建索引,及其注意事项

a) show index from 表名;(主键,外键,unique,会自动生成索引)

b) create index on 表名(列名);(给指定列创建索引)

eg:create index on student(name); (给学生表创建name索引)

c) drop index on 表名; (删除索引)

索引是针对列来使用的,后续查询的时候,查询条件使用的列和索引要匹配,才能触发索引,才能提高效率。

注:针对一个数据量大的表,创建/删除索引,是非常危险的,可能会触发大量的硬盘IO操作,很容易把机器搞挂了。。。然后进入到按分钟计费环节(doge)。

4. 索引的底层数据结构 =》B+树的优势和特点

特点:

a) N叉搜索树,每个节点上有N个Key,分为N个区间。

b) 每个父节点的元素,都会下沉到子节点中,作为该子节点中最大的元素存起来。

c) 叶子集合这一层就构成了数据集合的全集。

d) 使用类似于链表的结构,把叶子结点串起来。

优势:

a) N叉搜索树,高度比较低,有效减少了硬盘IO操作。

b) 范围查询非常方便/高效。

c) 所有的查询都落在叶子结点上,开销非常稳定,容易预估成本。

d) 叶子结点存储数据行,非叶子节点存储只存储队列的Key值,非叶子节点占据的空间小,可以加载到内存中,进一步减少IO的访问次数,加快查询的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值