前言
面试中,经常会问到有关于MYSQL 索引的相关观点,我们之前也都学过有关树的观点、以及二叉树、二叉查找树、红黑树等。这一节,来关注经常是数据库索引中使用的B-树
在说这些之前,我们需要领会时间复杂度以及空间复杂度。
时间复杂度
时间复杂度,用于判定一个算法的利害、许多时刻,好比跑一个for 循环一个数组排序,有冒泡、二分法等方式。相比于冒泡。二分法很占优势,为什么呢?由于对照的次数少、而且做的无用功少、以是这个算法就好。
时间复杂度就是为了示意一个频仍度,这个频仍度怎么说呢。就是每执行一次循环,这就是一个频仍。
O(频度) 用O大写字符O示意,而不是零。
常见时间复杂度依次从小到大:
O(1) 常数阶
O(logn) 对数阶
O(n) 线性阶
O(n的平方) 平方阶
O(n的立方) 立方阶
O(2的n次方) (指数阶)
空间复杂度
空间复杂度,一样平常指占用的内存
时间换空间、空间换时间
这两个完全是可以等价交换的。好比我们想用
消耗时间长、换取占用空间少 这样会使应用程序响应变慢。然则占用内存少
消耗大量空间、换取快速的响应 例子:谷歌浏览器
B-树
切记,这里不念做B减数 这里的横岗没有任何意思,就是B树。
来说这个问题之前,首先领会一下:有关索引的简朴内容。
我们都知道,索引,就是储存在内陆磁盘上的一块数据结构,通过索引,我们能够快速查找数据库指定数据所在的位置。由于需要快速的