理解mysql添加索引查询速度就变快了
参考:https://mp.weixin.qq.com/s/Vx4BBUZuOxlHNP3z5KPGs
https://blog.csdn.net/samll_snail/article/details/89445749
偶然看了订阅号这篇文章,简单整理下
-
给一个表添加索引,默认id是主键索引,k字段是添加索引的字段,然后如果不用到k字段查找会很慢,用到k就会很快,这就是添加索引的优点,但是添加索引也有缺点就是更新删除变得缓慢,可以采用读写分离的方式解决。⚒参考图吧如下
-
下面切入正题为什么添加索引会快,一般的我们添加索引选择的是B+树的形式,如下图
最原始的算法,一般如果我们找一个数用二分法,每个节点只会存1个二分,会照着如下图寻找
这个需要io三次。 -
然后升级成B树,每个可以分成多个,但是如果k值大的化,要分多级,多级就会变成个瘦杆子,增加了io次数
-
再然后升级成B+树,每个节点只存key,然后就变成个横向扩展的胖子,io次数变少,叶子上存的是key,key对应到具体
总结:索引相当于一本书的目录 一个表有几个索引就有几个B+树 K字段的叶子存的是主键id
本文作者:蜗牛使劲冲
本文链接:https://www.cnblogs.com/warrenwt/p/18074559
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步