黑色赚钱的网站,互联网网站 数据库,网页制作模板html,北京网站建设公司排名浩森宇特一、定义 索引#xff08;index#xff09;是帮助MySQL高效获取数据的数据结构(有序)。在数据之外#xff0c;数据库系统还维护着满足特定查找算法的数据结构#xff08;B树#xff09;#xff0c;这些数据结构以某种方式引用#xff08;指向#xff09;数据#xff0…一、定义 索引index是帮助MySQL高效获取数据的数据结构(有序)。在数据之外数据库系统还维护着满足特定查找算法的数据结构B树这些数据结构以某种方式引用指向数据 这样就可以在这些数据结构上实现高级查找算法这种数据结构就是索引。
二、底层数据结构 MySQL默认使用的索引底层数据结构是B树。为什么不使用二叉树和红黑树主要原因就是不稳定可能慢可能快因为时间复杂度的不平衡。 B-TreeB树是一种多叉路衡查找树相对于二叉树B树每个节点可以有多个分支即多叉。 以一颗最大度数max-degree为5(5阶)的b-tree为例那这个B树每个节点最多存储4个key。
BTree是在BTree基础上的一种优化使其更适合实现外存储索引结构InnoDB存储引擎就是用BTree实现其索引结构。 三、面试时的回答
面试官了解过索引吗什么是索引
候选人嗯索引在项目中还是比较常见的它是帮助MySQL高效获取数据的数据结构主要是用来提高数据检索的效率降低数据库的IO成本同时通过索引列对数据进行排序降低数据排序的成本也能降低了CPU的消耗。
面试官索引的底层数据结构了解过嘛?
候选人MySQL的默认的存储引擎InnoDB采用的B树的数据结构来存储索引选择B树的主要的原因是第一阶数更多路径更短第二个磁盘读写代价B树更低非叶子节点只存储指针叶子阶段存储数据第三是B树便于扫库和区间查询叶子节点是一个双向链表。
面试官B树和B树的区别是什么呢
候选人第一在B树中非叶子节点和叶子节点都会存放数据而B树的所有的数据都会出现在叶子节点在查询的时候B树查找效率更加稳定。
第二在进行范围查询的时候B树效率更高因为B树都在叶子节点存储并且叶子节点是一个双向链表。