二叉树
二叉树就是左边节点小于右边节点,第一个插入的值被看成根节点,没有自动平衡的功能,所以不稳定,可能会出现从小到大的数字,就是个右树了
红黑树
下面是我从2输到8所显示的,红黑树的根节点和叶子节点会根据值进行自旋,找到平衡点,红黑树是一种特殊的二叉树。但红黑树的缺点也有,当存储100万条数据或者更多的时候,树的高度就不确定了,每次查找树的高度时,磁盘io查找就很浪费。
hash表
如果创建hash的索引方式,只要一次IO查询就可以,但是只能对于等于(=)的指定查,才可以,如果是范围查找就(>或者<)就无效了,所以公司里不采用这个hash加索引的方式。
B-Tree
- 叶子节点具有相同深度
- 叶节点的指针为空
- 节点中的数据索引从左到右递增排列
操作系统中我们学过一次磁盘io大概读取的内容是4k大小,顶多是在几倍的大小,但是如果我们存取的数据横向的大小超过几百兆,几个G,那B-Tree也会很慢。
B+Tree(B+树)也就是B-Tree的变种
- 非叶子节点不存储data,只存储索引,可以放更多的索引
- 叶子节点不存储指针
- 顺序访问指针,提高区间访问的性能