数据库-索引(基础篇)

在这里插入图片描述


更多相关内容可查看

索引概念?

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
在这里插入图片描述
一提到数据结构,大家都会有所担心,担心自己不能理解。不过在这里大家完全不用担心,下文会详细介绍。

索引演示?

表结构及其数据如下:
在这里插入图片描述

假如我们要执行的SQL语句为 : select * from user where age = 45
无索引情况
blog.csdnimg.cn/direct/98d8d92c3c464e309fce0ff928f9e5e5.png)

在无索引情况下,就需要从第一行开始扫描,一直扫描到最后一行,我们称之为 全表扫描,性能很低。

有索引情况
如果我们针对于这张表建立了索引,假设索引结构就是二叉树,那么也就意味着,会对age这个字段建立一个二叉树的索引结构。
在这里插入图片描述

此时我们在进行查询时,只需要扫描三次就可以找到数据了,极大的提高的查询的效率。

索引的优劣?

优势

  1. 提高数据检索的效率,降低数据库的IO成本
  2. 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗

劣势

索引列也是要占用空间的 索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE时,效率降低

为什么使用索引就快?

  1. 减少数据扫描: 索引是一种数据结构,能够快速定位到数据中符合特定条件的记录。通过使用索引,数据库引擎可以直接跳过大部分数据,只扫描索引中符合查询条件的记录,从而大大减少了数据扫描的量,提高了查询速度。
  2. 减少磁盘 I/O索引通常存储在内存中,因此可以减少对磁盘的访问次数。当数据库引擎需要从磁盘读取数据时,如果使用了索引,它可以首先定位到索引中的位置,然后再读取相应的数据块,从而减少了磁盘I/O 操作的次数,提高了查询效率。
  3. 提高数据检索效率 索引能够将数据按照特定的排序方式组织起来,从而加快数据的检索速度。例如,对于 B 树索引,数据库引擎可以利用其平衡树结构进行快速的二分查找,从而快速定位到符合条件的记录。
  4. 避免全表扫描: 在没有索引的情况下,数据库引擎可能需要对整个表进行扫描来找到符合查询条件的记录,这会消耗大量的时间和资源。而使用索引可以避免全表扫描,使查询变得更加高效。
  5. 优化排序和连接操作: 索引不仅可以加速数据的查找,还可以优化排序和连接操作。例如,如果查询需要对结果进行排序或者执行连接操作,索引可以提供已排序的数据或者帮助优化连接顺序,从而加速查询的执行。

本篇小结

有小伙伴对其他数据库内容感兴趣,可以通过以下链接进行查看
数据库-索引(基础篇)
数据库-索引结构(B-Tree,B+Tree,Hash,二叉树)
数据库-索引语法(增删查)
数据库-索引分类(主键索引、唯一索引、普通索引、全文索引)
数据库-索引使用(验证索引效率、单列索引与联合索引、最左前缀法则)
索引失效情况

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来一杯龙舌兰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值