![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
gclhaha
对未来的恐惧
展开
-
密集索引和稀疏索引的区别
密集索引文件中的每一个搜索码值都对应一个索引值 系数索引文件只为索引码的某些值建立索引 密集索引决定了表的物理排列顺序,一个表只能有一个物理排列顺序,所以一个表只能创建一个密集索引 以mysql为例,有myisam存储引擎为稀疏索引,innodb存储引擎为密集索引。 MyIsam 不管是主键索引,唯一键索引或者普通索引,都属于稀疏索引 InnoDB 若一个主键被定义,该主键则作为密集索引 ...原创 2019-12-17 19:55:11 · 444 阅读 · 0 评论 -
BitMap索引
当表中的字段只有几种值的时候,比如要表示性别的时候,如果要再该字段实现高效的统计,此时,用位图索引是最佳的选择。目前较主流的是Oracle支持位图索引。 位图索引的结构类似于b+tree,叶子节点包含指定的位图段 缺点 位图索引锁的力度非常大,当尝试新增或修改一条数据的时候,通常与它在同一条位图的数据操作,都会被锁住。因为某行所在的位置顺序有可能会因为数据的添加或删除而发生改变,所以要将它锁住,...原创 2019-12-15 18:18:46 · 322 阅读 · 0 评论 -
Hash索引
Hash索引 优点 查询效率高,直接通过hash算法算出hash值,根据hash值定位到buckets中,再将该bucket的entry全部加载到内存中,entry是一个链表,进行遍历就能定位到想要查找的值 缺点 虽然hash索引的查询效率高,但是也有很多限制和弊端 仅仅能满足in或=,不能使用范围查询。因为经过相应的hash算法,处理过的hash值并不能保证和hash运算前的值保持完全一致 ...原创 2019-12-15 11:15:54 · 273 阅读 · 0 评论 -
B+ Tree
由图可以看出,B+树有以下几个特点 非叶子节点的子树指针和关键字个数相同,如上图中每三个关键字都有三个子树指针 非叶子节点的子树指针P[i],指向关键字值[P[i],P[i+1]]的子树,但是这个左区间的值不是固定的为P[i]的最小值,也可能是P[i]的最大值,比如图中最左侧的部分,10是P[i]的最小值,但是P[i]也可以是18,但是一定要小于P[i+1]的值 非叶子节点只用来索引,数据都保...原创 2019-11-26 21:35:16 · 98 阅读 · 0 评论 -
B-tree
定义 根节点至少包含两个孩子 树种每个节点最多包含m个孩子(m>=2) 除根节点和叶子节点外,其他每个节点至少有ceil(m/2)个孩子 所有叶子节点都位于同一层 每个非终端节点中包含n个关键字信息,其中 a) Ki(i=1…n)为关键字,且关键字按顺序升序排序K(i-1)<Ki b) 关键字的个数n必须满足:[ceil(m/2-1)]<=n<=m-1 c) 非叶子节点...原创 2019-11-20 20:22:33 · 92 阅读 · 0 评论