`

数据库索引

阅读更多

索引的优点

  1. 加快查找排序的效率
  2. 加快表于表之间的连接

索引的缺点

  1. 增加了数据库的存储空间
  2. 插入和修改数据时要花费较多的时间(因为索引也要随之变动)。

一般来说,应该在这些列上创建索引:

  • 需要经常查找的列:提高查找速度
  • 需要经常范围查找的列:因为索引已经排序,其指定的范围是连续的
  • 需要经常排序的列:因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间
  • 主键:强制该列的唯一性和组织表中数据的排列结构
  • 需要经常连接的列:这些列主要是一些外键,可以加快连接的速度
  • 需要经常用在WHERE子句中的列:加快条件的判断速度

一般来说,不应该在这些列上创建索引:

  • 不需要经常查找、不需要经常范围查找、不需要经常排序、不需要经常连接、不需要经常用在WHERE子句中的列
  • 只有很少数据值的列:如性别,只有两个值。
  • 数据量很大的列

多列索引

可以基于数据库表中的单列或多列创建索引。

如:可能有一列存在重复值,那么需要另一列来区分一条记录

再如:经常同时搜索(排序)两列或多列 → 经常在同一查询中为姓和名两列设置判据

最好避免在单个表上创建多个索引

这样插入和修改数据时索引也要随之变动,效率会下降。

索引的分类

根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引主键索引聚集索引

提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一性约束。

在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。


索引又可以分为聚集索引非聚集索引

聚集索引:按照数据存放的物理位置为顺序的索引。因为数据存放的物理顺序只有一个,所以聚集所以也只能有一个。

非聚集索引:不按照物理位置为顺序的索引。可以有多个。

聚集索引就相当于新华字典中的字母目录,非聚集索引就相当于新华字典中的偏旁部首目录。

聚集索引和非聚集索引的优缺点比较:

  • 聚集索引对多行的检索效率高(因为一旦第一个索引值的记录找到,具有连续索引值的记录也一定物理的紧随其后),非聚集索引对单行的检索效率高。
  • 比起非聚集索引,聚集索引对数据的修改效率慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把数据插入到数据页的相应的位置,必须在数据页中进行数据的重排,降低了速度

建议用聚集索引的列:

  • 包含很少数目的不同值的列
  • 查询结果返回一个区间的列
  • 查询结果返回某值相当的大量结果集的列

建议用非聚集索引的列:

  • 包含大量数目的不同值的列
  • 查询结果返回少量的结果集的列
  • 用在order by中的列
更多详细信息请查看java教程网 http://www.itchm.com/forum-59-1.html
分享到:
评论

相关推荐

    漫谈数据库索引漫谈数据库索引漫谈数据库索引

    漫谈数据库索引漫谈数据库索引漫谈数据库索引漫谈数据库索引

    数据库索引设计和优化

    数据库索引设计和优化 经典的数据库索引的书籍......................

    数据库 索引及优化

    数据库 索引 优化 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 例如这样一个查询:select * from table1 where id=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引...

    数据库索引设计与优化

    《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地...

    数据库索引设计与优化.pdf

    《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地...

    高清完整版 数据库索引设计与优化

    高清完整版 数据库索引设计与优化 高清完整版 数据库索引设计与优化

    oracle,数据库索引

    数据库索引

    数据库索引,到底是什么

    • 数据库索引用于加速查询 • 虽然哈希索引是O(1),树索引是O(log(n)),但SQL有很多“有序”需求,故数据库使用树型索引 • InnoDB不支持哈希索引 • 数据预读的思路是:磁盘读写并不是按需读取,而是按页预读,一...

    数据库索引设计与优化,经典圣作品

    本书提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地估算SQL运行的CPU时间及...

    数据库索引设计与优化.part1

    数据库索引设计与优化.part1数据库索引设计与优化.part1数据库索引设计与优化.part1数据库索引设计与优化.part1数据库索引设计与优化.part1数据库索引设计与优化.part1数据库索引设计与优化.part1数据库索引设计与...

    数据库索引设计原则.

    oracle数据库索引设计原则. 数据库索引设计原则.

    数据库索引设计与优化.part2

    数据库索引设计与优化.part2数据库索引设计与优化.part2数据库索引设计与优化.part2数据库索引设计与优化.part2数据库索引设计与优化.part2数据库索引设计与优化.part2数据库索引设计与优化.part2数据库索引设计与...

    《数据库索引设计与优化》高清带书签

    本书提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地估算SQL运行的CPU时间及...

Global site tag (gtag.js) - Google Analytics