mysql索引数据结构一般如何使用

下文主要给大家带来mysql索引数据结构一般如何使用,希望这些内容能够带给大家实际用处,这也是我编辑mysql索引数据结构一般如何使用这篇文章的主要目的。好了,废话不多说,大家直接看下文吧又是;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

MyISAM使用B - Tree实现主键索引,唯一索引和非主键索引。

InnoDB中非主键索引使用的是B -树数据结构,而主键索引使用的是B +树。

 mysql索引数据结构一般如何使用“> </p> <p> B - Tree </p> <p> B - Tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B -树结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B通常认为是平衡的简称。这个数据结构一般用于数据库的索引,综合效率较高。</p> <p>性能(推荐学习:mysql视频教程)</p> <p> B -树有以下特性:</p> <p> 1,关键字集合分布在整棵树中;</p> <p> 2,任何一个关键字出现且只出现在一个结点中;</p> <p> 3,搜索有可能在非叶子结点结束;</p> <p> 4,其搜索性能等价于在关键字全集内做一次二分查找;</p> <p> 5,自动层次控制;</p> <p> </p> <p> B +树不同的存储引擎可能使用不同的数据结构存储,InnoDB使用的是B +树;</p> <p>那什么是B +树呢? <br/> B +树是应文件系统所需而出的一种B -树的变型树,一棵m阶的B +树和m阶的B -树的差异在于:<br/> </p> <p> B +和B -(即B)是因为每个结点上的关键字不同。一个多一个,一个少一个。</p> <p>对于B +树,其结点结构与B -树相同,不同的是各结点的关键字和可以拥有的子结点数。如m阶B +树中,每个结点至多可以拥有m个子结点。非根结点至少有[m/2]个子结点,而关键字个数比B -树多一个,为[m/2] ~ m。</p> <p>这两种处理索引的数据结构的不同之处:</p> <p> 1. B树中同一键值不会出现多次,并且它有可能出现在叶结点,也有可能出现在非叶结点中。而B +树的键一定会出现在叶结点中,并且有可能在非叶结点中也有可能重复出现,以维持B +树的平衡。</p> <p> 2。因为B树键位置不定,且在整个树结构中只出现一次,虽然可以节省存储空间,但使得在插入,删除操作复杂度明显增加。B +树相比来说是一种较好的折中。</p> <p> 3. B树的查询效率与键在树中的位置有关,最大时间复杂度与B +树相同(在叶结点的时候),最小时间复杂度为1(在根结点的时候)。而B +树的时间复杂度对某建成的树是固定的。</p> <p>对于以上关于mysql索引数据结构一般如何使用,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。</p> <p> </p><h2 class=mysql索引数据结构一般如何使用