摘要:http://files.cnblogs.com/Arlen/04.rar4.3 B树虽然一级或两级索引通常有助于加快查询,但在商用系统中常使用一种更通用的结构。这一通用的数据结构簇称为B树,而最常使用的变体称为B +树。实质上:• B树能自动地保持与数据文件大小相适应的索引层次。• 对所使用的存储块空间进行管理,使每个块的充满程度在半满与全满之间。这样的索引不再需要溢出块...
阅读全文
摘要:不论是 聚集索引,还是非聚集索引,都是用B+树来实现的。我们在了解这两种索引之前,需要先了解B+树。如果你对B树不了解的话,建议参看以下几篇文章:BTree,B-Tree,B+Tree,B*Tree都是什么 http://blog.csdn.net/manesking/archive/2007/02/09/1505979.aspx B+ 树的结构图:B+ 树的特点:所有关键字都出现在叶子结点的链表...
阅读全文
摘要:MyISAM 索引结构了解 – MyISAM Index Structure在此之前曾经写过一篇介绍 “Innodb 索引结构了解 – Innodb Index Structure” 的文章,这次再接着分析一下 MyISAM 存储引擎索引的基本存储结构。从索引基本的存放数据结构来说,MyISAM 的索引不论是 Primary Key 还是普通 Ind...
阅读全文
摘要:写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记 录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4 个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间...
阅读全文
摘要:InnoDB 中文参考手册 --- 犬犬(心帆)翻译 11 表和索引结构MySQL 在数据库目录下的 .frm 文件中存储它的数据字典信息。但是每个 InnoDB 类型表也同样在 InnoDB 表空间内的内部的数据字典中存在它自己的进入点。当 MySQL 移除(drop) 一个表或一个数据库时,它将同时删除 .frm 文件,以及在 InnoDB 的数据字典中相对应的进入点。这就是为什么不能通过简单...
阅读全文
摘要:B-tree就是B减树(因为存在一个B+树所以会导致这样的误解,实际上并没有B减树这个概念存在,-号只是一个连字符而已也可写成B_),也不要跟二叉树binary tree混淆了。 那么什么是B减树呢,一般说它是Bayer’s tree的缩写(bayer是这种树的创建者之一的名字,另外一种最常见的命名方法是 b=broad,bushy,因为这种树所有“外部叶节点”...
阅读全文
摘要:1. myisam类型表的索引总长度不能超过1000个bytes。innodb索引总长度则不能超过767bytes。 在uft8下,定义字段时,如field varchar(n), key(field),则n*3不能超过1000在gbk下,定义字段时,如field varchar(n), key(field),则n*2不能超过1000 在latin1下,定义字段时,如field varchar(n...
阅读全文