数据库跨不过去的坎——索引

本文介绍了数据库索引的基础知识,包括索引的作用和类型,如聚集索引和非聚集索引,并探讨了B+树在索引中的应用。同时,文章指出索引并非万能,它在加快查询速度的同时可能减缓更新速度。还提到了一些可能导致索引失效的情况,如函数计算操作、LIKE模糊匹配和数据类型转换等,提醒读者在使用索引时应注意其影响。
摘要由CSDN通过智能技术生成

前言

在日常和其他程序员大佬吹逼的时候“索引”成了一个高频词汇。
每每提到数据库的时候,总有大佬意气风发的说把数据库索引加上,查询速度就起飞了。
从此对于“索引”总有一个敬畏之心。
日常开发自己也会加一加索引然后再查一下,
有时候速度提高很明显,
有的时候这是心理暗示自己,嗯!应该是快了!(实际并没有)
再后来,自己也学着大佬的模样和口气挥斥方遒
心里却怂得一匹
千万别再细问,我就是个大菜比。
菜比也要进步,今天就好好整理一下索引是怎么一回事。

索引是什么?

对于索引有一个非常好的比喻,数据库中数据是一本书中的内容,而索引就是内容对应的目录。
目录对应索引项以及页码对应内容地址。

除了通俗例子之外,我们换一个角度思考一下,如果没有索引数据库是怎么查数据的?
没有索引的数据库表的查询,其实就是把所有数据对比对一次得到结果。这… 不能忍!!!

那么索引怎么解决全表查询的问题?首先需要说明的是索引是一种数据结构,但是是什么数据结构是由数据库决定的这个我没有细究。
索引是根据表中的某一个列建立的,索引中包括整个表中这个列的所有数据。在查询中以这个索引可以得到对应的索引进而得到所有值,避免了全局搜索,所以有这个这么一个公式count(distinct(index))/count(*)这个值越小的列越适合建索引。(公式不是原版的,意会意会)<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值