二叉树结构
一个根节点,然后往下分叉衍生,数值比节点小的往左边衍生,数值比节点大的往右边衍生
但是有个问题,就是如果数值是自增而上的,那么子节点数据永远都要大于根节点,他就会一直往右衍生,这样会导致树的高度不可控,如下图
黑红树的结构
黑红树是根据二叉树之上诞生出来的一种结构,弥补了二叉树的缺陷,里面加个自动排序的功能,当子节点一直比跟节点的数值大的时候,他会取中间值作为根节点往下衍生,就是插入值的时候多了一个平衡算法,缺点的就是插入的数据太多那么树的高度会变得不可控,导致查询速度大大减慢
B-Tree
B+Tree
这个数据结构是根据B-Tree结构改变过来的,也是数据库的底层索引算法,再原来的B-树上面做了一点改动,他解决了树高度的问题,两千多万数据量只有三层,第一层和第二层存放索引,第三层存索引值和数据地址,所以查询速度非常快,超过两千多万的索引数据后那么他就会开始建立第四层分支,第四层分支的话那么数据量存放就可以上亿级别了,mysql建议我们超过两千多万数据就开始进行分表分库操作
表结构myisam引擎和InnoDB引擎
首先我们在数据库创建两张表