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组成,所以子节点都有一个链指针,数据记录都存放在叶子节点。
二叉查找树
性质:左子树的键值小于根的键值,右子树的键值大于根的键值。

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

被折叠的 条评论
为什么被折叠?



