`
罗春桉
  • 浏览: 16056 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

数据库入门之<索引>

阅读更多
索引的初步了解
一、什么是索引?
   
    索引是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。数据库使用索引时,首先从索引中找到要查找数据对应的特定值(相当于指针),然后根据这个特定值找到所要数据所在的行。这可以类比从字典查询信息的方法。如:要从字典查找单词hello的意思、发音等信息的时候,首先从字典目录(索引)中找到以h开头的所有单词并从中找到hello单词(指针),然后顺着后面的页码去查找该单词详细的信息(即我们所要的数据)。

二、索引有哪几种?
      
    根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。(有关数据库所支持的索引功能的详细信息,请参见数据库文档。)提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。

1.唯一索引
   唯一索引是不允许其中任何两行具有相同索引值的索引。

当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。

2.主键索引
   数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。

在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

3.聚集索引
   在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

  
三、索引的缺点.
   首先,索引要占用磁盘空间。通常情况下,这个问题不是很突出。但是,如果你创建每一种可能列组合的索引,索引文件体积的增长速度将远远超过数据文件。如果你有一个很大的表,索引文件的大小可能达到操作系统允许的最大文件限制。

    第二,对于需要写入数据的操作,比如 DELETE、UPDATE以及INSERT操作,索引会降低它们的速度。这是因为MySQL不仅要把改动数据写入数据文件,而且它还要把这些改动写入索 引文件。

四、索引的建法.(因为还没实现过,待续)

----------->BTree、HashTree、各种索引的详细学习、特点、用法、什么是聚集索引...?
分享到:
评论

相关推荐

    MYSQL培训经典教程(共两部分) 1/2

    数据库优化 177&lt;br&gt;8.1 索引的使用 178&lt;br&gt;8.1.1索引对单个表查询的影响 178&lt;br&gt;8.1.2索引对多个表查询的影响 180&lt;br&gt;8.1.3多列索引对查询的影响 181&lt;br&gt;8.1.4索引的作用 182&lt;br&gt;8.1.5 索引的弊端 182&lt;br&gt;8.1.6 选择...

    ORACLE 10G入门与实践 Part2

    对常用Oracle方案对象进行操作&lt;br/&gt;4-1 方案对象空间管理&lt;br/&gt;4-2 分区表和分区索引&lt;br/&gt;4-3 表&lt;br/&gt;4-4 索引&lt;br/&gt;4-5 视图&lt;br/&gt;4-6 同义词和序列&lt;br/&gt;第5章 实例和数据库的启动与关闭&lt;br/&gt;第6章 Oracle网络服务&lt;br/...

    Linux环境数据库管理员指南

    DB2 173&lt;br&gt;6.3.1 进行安装 174&lt;br&gt;6.3.2 检验安装 180&lt;br&gt;6.4 配置Control Center 182&lt;br&gt;6.5 安装DB2客户机 184&lt;br&gt;6.6 配置DB2客户机与DB2服务器通信 188&lt;br&gt;6.7 小结 194&lt;br&gt;6.8 常见问答 195&lt;br&gt;第7章 在Linux...

    ORACLE 10G入门与实践 Part1

    对常用Oracle方案对象进行操作&lt;br/&gt;4-1 方案对象空间管理&lt;br/&gt;4-2 分区表和分区索引&lt;br/&gt;4-3 表&lt;br/&gt;4-4 索引&lt;br/&gt;4-5 视图&lt;br/&gt;4-6 同义词和序列&lt;br/&gt;第5章 实例和数据库的启动与关闭&lt;br/&gt;第6章 Oracle网络服务&lt;br/...

    ORACLE 10G入门与实践 Part5

    对常用Oracle方案对象进行操作&lt;br/&gt;4-1 方案对象空间管理&lt;br/&gt;4-2 分区表和分区索引&lt;br/&gt;4-3 表&lt;br/&gt;4-4 索引&lt;br/&gt;4-5 视图&lt;br/&gt;4-6 同义词和序列&lt;br/&gt;第5章 实例和数据库的启动与关闭&lt;br/&gt;第6章 Oracle网络服务&lt;br/...

    ORACLE 10G入门与实践 Part3

    对常用Oracle方案对象进行操作&lt;br/&gt;4-1 方案对象空间管理&lt;br/&gt;4-2 分区表和分区索引&lt;br/&gt;4-3 表&lt;br/&gt;4-4 索引&lt;br/&gt;4-5 视图&lt;br/&gt;4-6 同义词和序列&lt;br/&gt;第5章 实例和数据库的启动与关闭&lt;br/&gt;第6章 Oracle网络服务&lt;br/...

    MYSQL培训经典教程(共两部分) 2/2

    数据库优化 177&lt;br&gt;8.1 索引的使用 178&lt;br&gt;8.1.1索引对单个表查询的影响 178&lt;br&gt;8.1.2索引对多个表查询的影响 180&lt;br&gt;8.1.3多列索引对查询的影响 181&lt;br&gt;8.1.4索引的作用 182&lt;br&gt;8.1.5 索引的弊端 182&lt;br&gt;8.1.6 选择...

    SQL2005入门到精通(3)

    26&lt;br&gt;3.4 SQL Server的数据库对象 26&lt;br&gt;3.4.1 表 26&lt;br&gt;3.4.2 视图 27&lt;br&gt;3.4.3 索引 28&lt;br&gt;3.4.4 主键 28&lt;br&gt;3.4.5 外键 28&lt;br&gt;3.4.6 存储过程 28&lt;br&gt;3.4.7 触发器 30&lt;br&gt;3.4.8 数据类型 30&lt;br&gt;3.4.9 约束 30&lt;br&gt;...

    SQL2005入门到精通(4)

    39&lt;br&gt;4.1.4 设置启动选项 40&lt;br&gt;4.1.5 查询/代码编辑器 41&lt;br&gt;4.1.6 使用模板资源管理器、解决方案、脚本项目 42&lt;br&gt;4.2 使用SQL Server Management Studio设计数据库 43&lt;br&gt;4.2.1 创建数据库 44&lt;br&gt;4.2.2 附加...

    jive.chm

    &lt;br&gt; 2 jcs学习笔记 &lt;br&gt; 3 关于Hibernate的Cache问题 &lt;br&gt; 4 用缓冲技术提高JSP应用的性能和稳定性 &lt;br&gt; 5 SwarmCache入门 &lt;br&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;源代码研究&lt;br&gt; 1 Jive中的全局配置 &lt;br&gt; 2 Jive源代码情景分析-index....

    SQL2005入门到精通(23)

    477&lt;br&gt;23.2.3 使用T-SQL全文数据定义语言 478&lt;br&gt;23.2.4 使用T-SQL创建全文索引的示例 482&lt;br&gt;23.2.5 从数据表中删除全文索引 484&lt;br&gt;23.2.6 从数据库中删除全文目录 484&lt;br&gt;23.3 使用全文搜索 484&lt;br&gt;23.3.1 ...

    Visual Foxpro教室

    &lt;br&gt; 第一课:Viusal FoxPro 6.0入门指南。 &lt;br&gt; 第二课:表和索引。 &lt;br&gt; 第三课:向导。 &lt;br&gt; 第四课:将表加入数据库。 &lt;br&gt; 第五课:建立视图。 &lt;br&gt; 第六课:建立查询。 &lt;br&gt; 第七课:设计报表和标签。...

    数据库设计经验【PDF】

    精选了其中的 60 个最佳技巧,并把这些技巧编写成了本文,为了方便索引其内容划分为 5 个部分:&lt;br&gt;第 1 部分 - 设计数据库之前&lt;br&gt;这一部分罗列了 12 个基本技巧,包括命名规范和明确业务需求等。 &lt;br&gt;第 2 部分 - ...

    XproerBBS3.0.107源码

    &lt;br&gt;&lt;br&gt;已包含技术: &lt;br&gt;(1)数字索引分页算法,上下页分页算法(这个算法是目前所有分页中效率最高的)。 &lt;br&gt;(2)缓存技术,成熟的TxtCache技术,提高系统性能。 &lt;br&gt;(3)用户身份验证技术,Session + Cookie 双重...

    RubyonRails九日学习计划

    RubyonRails九日学习计划(含相关软件及书籍)时间 内容 目的&lt;br&gt;第一天 学习oracle 基本工具掌握 plsql ,sql语言,范式,索引,数据库安全,数据备份,导入导出。 熟练掌握SQL语言&lt;br&gt;第二天 1. ruby 语言历史和...

    Mysql基础教程.chm

    1、MySQL安全性指南 &lt;br/&gt;2、MySQL查询优化讲座-查询优化器 &lt;br/&gt;3、MySQL查询优化讲座-使用索引 &lt;br/&gt;4、MySQL查询优化讲座-数据类型与效率 &lt;br/&gt;5、MySQL查询优化讲座之调度和锁定 &lt;br/&gt;6、MySQL 5.0 新特性...

    神通数据库-数据库快速入门.pdf

    作为企业级大型、通用对象关系型数据库管理系统,神通数据库为用户提供的功能包括: • 支持丰富的数据类型 神通数据库所支持的数据类型包括:字符串类型、位串类型、精确数值类型、布尔型、近似数值类型、 日期类型...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    &lt;/TITLE&gt; &lt;/HEAD&gt; &lt;BODY&gt; &lt;H1&gt; First PHP page &lt;/H1&gt; &lt;HR&gt; &lt;? // Single line C++ style comment /* printing the message */ echo "Hello World!"; # Unix style single line comment ?&gt; &lt;/BODY&gt; &lt;/HTML&gt; 2.4 数据...

    c#编程从入门到精通配书代码.part1

    书在我空间前面有,自己找吧&lt;br&gt;Inside C#:C#编程从入门到精通(本版CD) &lt;br&gt;作者:丁鹏 编写 出版时间:2002年03月 &lt;br&gt;本书既为入门者提供了简单教程,同时也为高级编程人员提供了大量的例程。由3部分组成:第一部分...

    MongoDB基础入门之创建、删除集合操作

    db.createCollection(name, {capped: &lt;Boolean&gt;, autoIndexId: &lt;Boolean&gt;, size: &lt;number&gt;, max &lt;number&gt;}) 参数说明 name: 要创建的集合的名称 options: 可选参数,指定有关内存大小及索引的选项 options参数说明 ...

Global site tag (gtag.js) - Google Analytics