什么是Mysql索引 Mysql索引的定义和作用
什么是Mysql索引
今天介绍什么是Mysql索引的相关知识,接下来IT袋网小编就来介绍。
思考:了解过索引吗?(什么是索引)
索引(index): 帮助MySQL高效获取数据的数据结构(有序)。
在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引
思考:Mysql索引的底层数据结构了解过嘛?
MySQL默认使用的索引底层数据结构是B+树
再介绍B+树之前,我们先知道二叉树(主要是二叉搜索树和红黑树)和B树
1.二叉树
二叉树: 顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只有左子节点,有的节点只有右子节点。二叉树每个节点的左子树和右子树也分别满足二叉树的定义

常见的二叉树有:
- 满二叉树
- 完全二叉树
- 二叉搜索树
- 红黑树
1.1. 二叉搜索树
二叉搜索树(Binary Search Tree,BST):名二叉查找树,有序二叉树或者排序二叉树,是二叉树中比较常用的一种类型
二叉查找树要求,在树中的任意一个节点,其左子树中的每个节点的值,都要小于这个节点的值,而右子树节点的值都大于这个节点的值

在极端情况下,二叉树会形成一个单向链表,结构如下:

二叉搜索树,属于最坏的情况,已经退化成了链表,左右子树极度不平衡,此时查找的时间复杂度肯定是O(n)
1.2. 二叉树作为索引结构缺点
- 1.如果数据是有序的,则会顺序插入,形成链表,查询效率就降低
- 2.如果数据量比较大,层级就比较深,检索效率就慢
2. 红黑树
考虑到二叉树有这些缺点后,我们可能就会考虑使用二叉树进阶版红黑树,红黑树是一个自由平衡二叉树,解决了是顺序插入数据形成单向链表的缺点,最终形成的数据结构也是一颗平衡的二叉树
红黑树(Red Black Tree):也是一种自平衡的二叉搜索树(BST),之前叫做平衡二叉B树(Symmetric Binary B-Tree)
红黑树数据结构如下:
相关阅读
-
dw制作网站教程 dreamweaver新手教程分享
文章导读:dw制作网站教程和dreamweaver新手教程分享的教程内容,下面小编为您详细解答 使用Dreamweaver制作网页时候,网页的框架往往在某些方面有固定的格式,像是导航栏、banner条,如果每制
-
什么是网络附加存储 NAS? 网络附加存储的适用场景有哪些
一篇很详细的教程是关于什么是网络附加存储方面的介绍,一起来了解了解吧。 网络附加存储(Network-Attached Storage,简称NAS)是一种基于网络的存储解决方案,允许多个设备通过网络共享存储
-
轻松升级存储格式:FAT32转NTFS命令详解与操作指南
关于轻松升级存储格式的教程内容,如有不对的地方欢迎指正! 在Windows操作系统中,FAT32和NTFS是两种常见的文件系统。 NTFS相比于FAT32具有更多的功能和更好的性能,因此,很多用户可能会想
-
企业网站建设原则是什么 关于企业网站设计要求
IT袋网小编为你介绍企业网站建设原则是什么和关于企业网站设计要求的相关话题,接下来小编为网友介绍。 在互联网时代,网站已经成为企业的标准配置。有些网站甚至有多个网站,包括企


