mysql gis index 索引原理_Mysql 索引原理及优化

本文介绍了MySQL索引的原理,包括B-Tree和B+Tree数据结构,强调了索引对查询速度的提升和创建维护的成本。讨论了何时创建索引、最佳实践,以及索引失效的情况。同时,对比了聚集索引和非聚集索引的区别,并提到了慢查询的排查方法。
摘要由CSDN通过智能技术生成

Mysql 索引原理及优化

什么是索引

为什么需要索引?

索引是数据表种一个或者多个列进行排序的数据结构

索引能够大幅提升检索速度

创建、更新索引本身也会耗费空间和时间

查找结构进化史

线性查找:一个个找;实现简单;太慢

二分查找:有序;简单;要求是有序的,插入特别慢

HASH查找:查询快;占用空间;不太适合存储大规模数据

二叉查找树:插入和查询很快(log(n));无法存大规模数据,复杂度退化

平衡树:解决 BST 退化问题,树是平衡的;节点非常多的时候,依然树高很高

多路查找树:一个父亲多个孩子节点(度);节点过多树高不会特别深

多路平衡查找树:B-Tree

这个网站关于数据结构的演示很直观,我们可以通过其中的动画来学习。

比如二叉查找树退化问题:

93df98f2636be4ce05a37235ac55f4e3.png

可以明显看到,由于我们输入的数字是顺序增长的,二叉查找树变成了单边增长的线性结构,这就是复杂度退化。

平衡树(AVL)则没有这个问题:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值