什么是索引?为什么要建立索引?并举例说明.(以某一具体的DBMS为例)

悬赏分:100 - 解决时间:2008-7-7 16:40
什么是聚簇索引?为什么要建立聚簇索引?并举例说明.
希望可以一起回答!
急急急!!!!!!! 
提问者: luckywind2007 - 三级
最佳答案
索引是表示数据的另一种方式,它提供的数据顺序不同于数据在磁盘上的物理存储顺序。索引的特殊作用是在表内重新排列记录的物理位置。索引可建立在数据表的一列上,或建立在表的几列的组合上。
回想一下图书馆中,存放着一架一架的图书。假设要找一本书,图书管理员视必要一架一架的寻找,直到找到想要的那本书为止。这样的查找肯定费时费力,那么管理员可以将所有的图书标题按字母分类建立索引卡片,按字母顺序放在不同的办公抽屉中,这样一架一架查找图书的过程就变成了在办公桌前抽屉中查询索引卡片了,很容易得到有关这本书的信息。
再进一步设想,图书管理员很勤快,他不仅按照图书标题字母分类,而且还按作者姓名和出版社分别建立了另外的索引卡片,这个过程将给借阅者在检索图书信息时以更大的灵活性。因此在一个数据表中是可以建立多个索引的。
在数据库中,对无索引的表进行查询一般称为全表扫描。全表扫描是数据库服务器用来搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止。这个操作可以比作在图书馆中查书,从第一个书架的第一本书开始,浏览每一本书,直到发现所要的书为止。为了进行高效查询,可以在数据表上针对某一字段建立索引,由于该索引包括了一个指向数据的指针,数据库服务器则只沿着索引排列的顺序对仅有一列数据的索引进行读取(只建立一个索引)直至索引指针指向相应的记录上为止。由于索引只是按照一个字段进行查找,而没有对整表进行遍历,因此一般说来索引查找比全表扫描的速度快。
那么,是不是使用索引查询一定比全表扫描的速度快呢?答案是否定的。如果查询小型数据表(记录很少)或是查询大型数据表(记录很多)的绝大部分数据,全表扫描更为实用。例如,查询“性别”字段,其值只能是“男或女”,在其上建立索引的意义就不大,甚至不允许在布尔型、大二进制型(备注型、图像型等)上建立索引。

什么是索引?为什么要建立索引?并举例说明.(以某一具体的DBMS为例)相关推荐

  1. mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范

    索引是什么 索引(index)是帮助MySQL高效获取数据的数据结构 如果没有特别指明,都是指的是B树索引(多路搜索树,并不一定是二叉树)结构组织的索引 建立索引的优势和劣势 优势 提高数据检索的效率 ...

  2. 搜索引擎索引之如何建立索引

                                              本文节选自<这就是搜索引擎:核心技术详解>第三章 3.4建立索引 正如前述章节所述,索引结构如果建立好了 ...

  3. oracle加强制索引,Oracle中建立索引并强制优化器使用

    当WHERE子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引. 通常情况下,如果在WHERE子句中不使用诸如UPPER.REPLACE 或SUBSTR ...

  4. oracle 数据库如何建立索引 如何用索引?

    我现在有一个SQL语句  SELECT FAQID, FAQNAME, TYPE, CREATOR, TOQUESTION, SUPERCODE FROM T_KBS_FAQ t where TYPE ...

  5. 数据库建立索引怎么利用索引查询

    数据库建立索引怎么利用索引查询? 精选 1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率.现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构. 索引的使用要恰 ...

  6. (转)Mysql哪些字段适合建立索引

    工作中处理数据时,发现某个表的数据达近亿条,所以要为表建索引提高查询性能,以下两篇文章总结的很好,记录一下,以备后用. 数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引:  2.数据量超过 ...

  7. MySQL索引优化:索引失效以及不适合建立索引的场景

    引言: 索引是有双面性的,合理的建立索引可以提高数据库的效率.但是如果没有合理的构建索引和使用索引,可能会导致索引失效或者影响数据库性能,本文主要讨论的是索引失效以及不适合建立索引的场景 结论:具体案 ...

  8. mysql 唯一索引_MySQL学会用索引,让你数据库的查询速度起飞

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度.打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一 ...

  9. 计算机语言中索引什么意思,算法索引

    索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息.算法索引是指算法集成包或API中算法调用接口按照某种规则排序.算法索引有利于对有关算法和调用.算法索引一般是 ...

最新文章

  1. 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)
  2. daterangepicker双日历插件的使用
  3. python列表转集合_Python数据类型 列表、元组、集合、字典的区别和相互转换
  4. 我和计算机作文450字,我和朋友作文450字
  5. 阿里P8大神十年珍藏,Java技术电子书绝佳推荐,每一本都要吃透
  6. php5.6 手册,php5.6手册下载
  7. cad 2019 mac安装破解详细图文教程
  8. Delphi 人民币大小写转换
  9. 《UnityAPI.Color颜色》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Color+Lerp+RGBToHSV+gamma+linear+立钻哥哥++OK++)
  10. 2013中国旅游网站100强排行榜
  11. 关于word的样式类型
  12. 真c++ 从二叉树到红黑树(2)之二叉树基类
  13. 木木机器人tf卡_Microsoft 微软 L5V-00022 Sculpt Ergonomic 人体工程学无线键鼠套装
  14. table表格自动滚动
  15. 清除Trojan.PSW.WoWar.qq等木马
  16. 深入Nodejs技术栈
  17. 男生学习Java软件开发更有优势吗及自学的难度如何?[图]
  18. 图像处理 真彩色增强
  19. DWCC2018基本网页设计注意要点、使用技巧
  20. 泰克示波器TDS210改装便携示波器

热门文章

  1. HTTP referer/HTTP referrer
  2. hdu 1086(判断两线段是否相交)
  3. hdu 4090(搜索+可行性剪枝)
  4. hdu-Cube(三位树状数组)
  5. 数据结构(严蔚敏)之六——链式队列c语言实现
  6. NYOJ 640 Geometric Sum
  7. NYOJ 138 找球号(二)哈希表
  8. 重装JDK后Tomcat和Eclipse的配置
  9. 深度学习代码注解(一)—— mnistdeepauto
  10. NFS Volume Provider(Part II) - 每天5分钟玩转 OpenStack(63)