本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是..
分类:
数据库 时间:
2016-07-25 00:29:16
阅读次数:
243
一种适合外查找的树,它是一种平衡的多叉树,称为B树。一棵M阶(M>2)的B树,是一棵平衡的M路平衡搜索树,可以是空树或者满足一下性质:根节点至少有两个孩子每个非根节点有[M/2,M]个孩子每个非根节点有[M/2-1,M-1]个关键字,并且以升序排列key[i]和key[i+1]之间的孩子节点的..
分类:
其他好文 时间:
2016-07-22 23:12:46
阅读次数:
292
B树的性质:根节点至少有两个孩子每个非根节点有[,M]个孩子每个非根节点有[-1,M-1]个关键字,并且以升序排列key[i]和key[i+1]之间的孩子节点的值介于key[i]、key[i+1]之间所有的叶子节点都在同一层以下代码实现了B树的查找和插入操作,删除操作暂未实现插入:先找到插入结点的..
分类:
其他好文 时间:
2016-07-22 14:49:32
阅读次数:
117
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也带来了很多限制和弊端 ...
分类:
其他好文 时间:
2016-07-22 12:58:52
阅读次数:
134
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL ...
分类:
数据库 时间:
2016-07-22 12:54:37
阅读次数:
148
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大 ...
分类:
数据库 时间:
2016-07-20 19:16:02
阅读次数:
228
B树属于多叉树,也称多路平衡树。有些地方也将B树称为‘B-树‘,这里‘-’不表示减号。■B树的主要性质:(1)根节点至少有两个孩子。(2)每个非根节点为[[M/2],M]个孩子,这里[M/2]表示向上取整。(3)每个非根节点都有[[M/2],M-1]个关键字,并且以升序排列。(4)K[i]和k[i+1]..
分类:
其他好文 时间:
2016-07-20 13:43:01
阅读次数:
155
概述:R-BTree,又称为“红黑树”。本文参考了《算法导论》中红黑树相关知识,加之自己的解,然后以图文的形式对红黑树进行说明。本文的主要内容包括:红黑树的特性,红黑树的时间复杂度和它的证明,红黑树的左旋、右旋、插入等操作。1R-BTree简介R-BTree,全称是Red-BlackTree..
分类:
其他好文 时间:
2016-07-11 01:19:03
阅读次数:
186
解决办法一:用sql脚本导入数据提示USING BTREE 错误,原因是mysql不兼容,因为mysql 5.14版本之前不认识 USING BTREE,sql执行到这一段就进行不下去了。删掉USING BTREE字段即可 解决方法二: 打开sql脚本,找到USING BTREE位置;索引如下: K ...
分类:
其他好文 时间:
2016-07-07 12:34:51
阅读次数:
127
导读 在MySQL里常用的索引数据结构有B+树索引和哈希索引两种,我们来看下这两种索引数据结构的区别及其不同的应用建议。 二者区别 备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BTREE,例如像下面这样的写法: CREATE TABLE t(aid int unsigned not ...
分类:
数据库 时间:
2016-07-06 16:38:01
阅读次数:
214