索引的原理

本文介绍了数据库索引的基本类型,如B-Tree和Hash索引,重点解析了B+Tree索引的工作原理,以及为何它能提高查询效率。文章讨论了索引建立的原则,包括在主键、频繁搜索列等上创建索引,并提醒了索引的缺点,如维护成本和影响写操作速度。此外,还列举了可能导致索引失效的情况,如OR条件、模糊查询等。
摘要由CSDN通过智能技术生成

1.索引有哪些

     在MySQL中物理上分B-Tree索引和Hash索引,B-Tree索引中有,唯一索引、主键索引、全文索引、单列索引、多列索引。
        Hash索引在实际中不经常用,它实际上是通过一定的Hash算法,将需要索引的键值进行Hash算法,然后将得到的Hash值存入一个Hash表中。每次需要检索时,都会将检索条件进行相同的hash运算,再和hash表中的hash值进行比较,并得出相应的信息所以hash索引只能用于等值过滤,不能范围查询。

2.索引为什么能提高查询效率/索引原理

    索引的本质是一种数据结构,它可以通过减少磁盘IO操作,来提高数据库查询效率。

    数据库中默认使用的是B+Tree索引,而B+Tree索引是通过B-Tree索引(平衡多路查找树)优化来的,他们又是从最早的平衡二叉树演化过来的。B-Tree索引的结构是这样的,每个叶子节点的高度是一样的,每个非叶子节点由key和point组成,key和point相互间隔,节点两端一定是key,叶子节点的point都是null,非叶子节点的key都是[key,data]二元组,其中key表示索引键,data为键值所在行的据。B+Tree索引在B-Tree基础上做了优化,非叶子节点由n个key和n个point组成,所以子节点都有一个链指针,数据记录都存放在叶子节点。

二叉查找树

性质:左子树的键值小于根的键值,右子树的键值大于根的键值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值