数据库系统实现 第4章 索引结构

几种索引:

1)排序文件上的简单索引

2)非排序文件上的辅助索引

3)B树

4)散列表

主索引

1)稠密索引:每个主键都有

2)稀疏索引:每个数据块存放一个键

3)多级索引:索引上的索引

4)重复查找键的索引: 比较简单的解决方法是在稠密索引上的每种键值都建立一个索引

数据修改期间的索引维护

1)创建或删除一个空溢出块:对两种索引均无影响,因为稠密索引针对记录,稀疏索引针对基本存储快

2)创建或删除文件的块:对稠密索引无影响,对稀疏索引有影响

3)插入或删除记录:对稠密索引有相同的影响。当不产生额外块的时候对稀疏索引无影响

4)移动一个记录,对稠密索引有影响,当记录的移动改变某个块的第一条的时候对稀疏索引有影响。

辅助索引

主索引决定了被索引记录的位置,而当查询条件不是对主键的判断的时候,可以利用辅助索引来加速。

CREATE INDEX DBindex ON MovieStar(birthdate);

此时

SELECT name,address

FROM MovieStar(birthdate);

WHERE birthdate = DATE‘1950-01-01‘;

这条查询就会变快

辅助索引的设计

辅助索引是稠索引,通常具有重复值,为了便于快速找到给定键值的索引,可是对其构建二级索引。

时间: 2024-11-07 16:46:36

数据库系统实现 第4章 索引结构的相关文章

数据库为什么要用B+树结构--MySQL索引结构的实现

B+树在数据库中的应用 { 为什么使用B+树?言简意赅,就是因为: 1.文件很大,不可能全部存储在内存中,故要存储到磁盘上 2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/+Tree,还跟磁盘存取原理有关.) 3.局部性原理与磁盘预读,预读的长度一般为页(page)的整倍数,(在许多操作系统中,页得大小通常为4k) 4.数据库系统巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入,(由于节点中有两个数组,所以地址连续).

MySQL索引结构--由 B-/B+树看

B-树 B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点.下图是 B-树的简化图. B-树有如下特点: 所有键值分布在整颗树中: 任何一个关键字出现且只出现在一个结点中: 搜索有可能在非叶子结点结束: 在关键字全集内做一次查找,性能逼近二分查找: B+ 树 B+树是B-树的变体,也是一种多路搜索树, 它与 B- 树的不同之处在于: 所有关键字存储在叶子节点出现,内部节点(非叶子节点并不存储

数据库系统原理之第一章数据系统基本概念总结 .

昨天,听了米老师的讲课之后突然对原本"晕晕乎乎"的数据库有了新的认识,以下便是听了米老师的讲解之后又结合我自己的理解和小童师姐的帮助下对<数据库系统原理>第一章的认识:     首先,将第一章分了三大类:数据.DBMS.DBS:     其次,数据中包括阶段.描述.级别:DBMS大体分为模式和功能两类:DBS又分为组成和结构:     详细请参见导图: (有认识不到位或做的不好的地方还请多多指出 http://weibo.com/p/10016037514362268467

R-tree 一种空间搜索的动态索引结构

译林:R-tree 一种空间搜索的动态索引结构Antonm Guttman 摘要为了有效地处理空间数据,正如在计算机辅助设计和地理数据应用中所要求的那样,数据库需要一种索引机制能根据它们的空间位置快速地取得数据项.然而传统的索引方法并不能很好的适应位于多维空间中的非零大小的数据对象.在这篇论文中,我们描述一种被称之为R-树的动态索引结构来满足这种需求,并且给出了对应的搜索和更新算法.我们进行了一系列的测试,结果表明这种结构的性能很好,结论是它对于当前的数据库系统在空间应用十分有帮助. 1.引言

SQL Server中的索引结构与疑惑

说实话我从没有在实际项目中使用过索引,仅知道索引是一个相当重要的技术点,因此我也看了不少文章知道了索引的区别.分类.优缺点以及如何使用索引.但关于索引它最本质的是什么笔者一直没明白,本文是笔者带着这些问题研究msdn的一点小结以及一大堆疑惑. 1.表结构 当开发者在数据库中创建一个表时,此时默认为这个表创建了一个分区,注意是一个分区.分区是一种数据组织单元,在这个分区中可存在2种结构,分别是堆结构或B树结构(索引结构),也就是说一个分区里要么是堆结构要么是B树结构.为了在某些方面提高性能以及便于

mysql索引结构原理、性能分析与优化

原文  http://wulijun.github.com/2012/08/21/mysql-index-implementation-and-optimization.html 第一部分:基础知识 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里, 不用一页一页查阅找出需要的资料. 唯一索引(unique index) 强调唯一,就是索引值必须唯一. 创建索引: create unique index 索引名 on 表名(列

由浅入深探究mysql索引结构原理、性能分析与优化

转载自:http://www.phpben.com/?post=74 第一部分:基础知识: 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里,不用一页一页查阅找出需要的资料.关键字index ------------------------------------------------------------- 唯一索引 强调唯一,就是索引值必须唯一,关键字unique index 创建索引: 1.create unique

公司内部培训SQL Server传统索引结构PPT分享

公司内部培训SQL Server传统索引结构PPT分享 下载地址 http://files.cnblogs.com/files/lyhabc/SQLServer%E4%BC%A0%E7%BB%9F%E7%B4%A2%E5%BC%95%E7%BB%93%E6%9E%84.ppt PPT有不对的地方,多多拍砖o(∩_∩)o

SQL Server 的索引结构实例

目前SQL Server 的索引结构如下: 这个是聚集索引的存放形式: 非聚集索引的方式如下: 它们是以B+树的数据结构存放的. 相信大家都看过类似的图,但是没有直观的认识,下面举一个实际的例子来说明图的结构. USE Test --1.创建表,指定主键(会自动创建聚集索引) CREATE TABLE Person ( Id int NOT NULL IDENTITY, Name varchar(10) NOT NULL, Sex varchar(2) NOT NULL, CONSTRAINT