`
罗春桉
  • 浏览: 16506 次
  • 性别: 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入门与实践 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/...

    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/...

    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....

    <<Oracle 10g数据库入门与实践>>源代码

    本资源《Oracle 10g数据库入门与实践》的源代码提供了丰富的学习材料,帮助初学者深入理解Oracle数据库的原理和操作,同时也为有经验的开发者提供实践参考。 在Oracle 10g中,有几个核心概念和技术值得我们深入探讨...

    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; 第七课:设计报表和标签。...

    XproerBBS3.0.107源码

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

    html手册 pdf版本3

    5. **列表类型**:掌握无序列表(&lt;ul&gt;,&lt;li&gt;)和有序列表(&lt;ol&gt;,&lt;li&gt;)的创建,以及定义列表(&lt;dl&gt;,&lt;dt&gt;,&lt;dd&gt;)的使用。 6. **HTML5新增元素**:了解HTML5引入的新元素,如&lt;header&gt;,&lt;footer&gt;,&lt;nav&gt;,&lt;section&gt;...

    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 新特性...

    MongoDB常用命令手册.zip

    10. **索引创建**:`db.&lt;collection&gt;.createIndex(&lt;key-value pair&gt;, &lt;options&gt;)`创建索引,例如`db.users.createIndex({name: 1})`创建升序的"name"索引。 11. **查看索引**:`db.&lt;collection&gt;.getIndexes()`列出...

    在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通

    此外,了解达梦数据库的特性和最佳实践,例如索引优化、SQL语句优化等,也有助于提升系统性能。 通过以上步骤,你就能在IntelliJ IDEA中成功地使用Spring Boot集成达梦数据库,并进行高效的数据操作。在实践中不断...

    DB2数据库基础入门.docx

    CREATE DATABASE &lt;数据库名称&gt; ON &lt;路径&gt; ALIAS &lt;别名&gt; USING CODESET &lt;字符集&gt; TERRITORY &lt;国家/地区&gt; COLLATE USING SYSTEM DFT_EXTENT_SZ &lt;默认扩展大小&gt; ``` 例如,创建名为`DB2_GCB`的数据库,并设置其存储位置...

Global site tag (gtag.js) - Google Analytics