索引的优点
- 加快查找和排序的效率
- 加快表于表之间的连接
索引的缺点
- 增加了数据库的存储空间
- 插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
一般来说,应该在这些列上创建索引:
-
需要经常查找的列:提高查找速度
-
需要经常范围查找的列:因为索引已经排序,其指定的范围是连续的
-
需要经常排序的列:因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间
-
主键:强制该列的唯一性和组织表中数据的排列结构
-
需要经常连接的列:这些列主要是一些外键,可以加快连接的速度
-
需要经常用在WHERE子句中的列:加快条件的判断速度
一般来说,不应该在这些列上创建索引:
- 不需要经常查找、不需要经常范围查找、不需要经常排序、不需要经常连接、不需要经常用在WHERE子句中的列
-
只有很少数据值的列:如性别,只有两个值。
- 数据量很大的列
多列索引
可以基于数据库表中的单列或多列创建索引。
如:可能有一列存在重复值,那么需要另一列来区分一条记录
再如:经常同时搜索(排序)两列或多列 → 经常在同一查询中为姓和名两列设置判据
最好避免在单个表上创建多个索引
这样插入和修改数据时索引也要随之变动,效率会下降。
索引的分类
根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。
提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一性约束。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。
索引又可以分为聚集索引和非聚集索引
聚集索引:按照数据存放的物理位置为顺序的索引。因为数据存放的物理顺序只有一个,所以聚集所以也只能有一个。
非聚集索引:不按照物理位置为顺序的索引。可以有多个。
聚集索引就相当于新华字典中的字母目录,非聚集索引就相当于新华字典中的偏旁部首目录。
聚集索引和非聚集索引的优缺点比较:
- 聚集索引对多行的检索效率高(因为一旦第一个索引值的记录找到,具有连续索引值的记录也一定物理的紧随其后),非聚集索引对单行的检索效率高。
- 比起非聚集索引,聚集索引对数据的修改效率慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把数据插入到数据页的相应的位置,必须在数据页中进行数据的重排,降低了速度
建议用聚集索引的列:
- 包含很少数目的不同值的列
- 查询结果返回一个区间的列
- 查询结果返回某值相当的大量结果集的列
建议用非聚集索引的列:
- 包含大量数目的不同值的列
- 查询结果返回少量的结果集的列
- 用在order by中的列
更多详细信息请查看
java教程网 http://www.itchm.com/forum-59-1.html
分享到:
相关推荐
数据库索引设计与优化是数据库管理系统中至关重要的一个环节,它直接影响到数据查询的效率、存储空间的使用以及系统的整体性能。在这个主题中,我们将深入探讨数据库索引的基础概念、设计原则、优化策略以及实际应用...
《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地...
数据库索引重建及修复语句
数据库索引设计原则 数据库索引设计原则是 Oracle 数据库管理系统中的一项重要技术,旨在提高数据库的查询效率和性能。以下是数据库索引设计原则的详细解释。 一、基本原则 数据库索引设计原则的基本原则是确保...
高清完整版 数据库索引设计与优化 高清完整版 数据库索引设计与优化
《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地...
数据库索引技术是数据库管理系统中的核心组成部分,它极大地提高了数据查询效率,使得在海量数据中查找特定信息变得迅速。下面将分别对标题和描述中提到的各个知识点进行详细阐述。 首先,我们来看“文件记录的组织...
### 数据库索引及优化详解 #### 一、数据库索引的重要性 数据库索引就像是图书中的目录,能够显著提升查询速度。例如,在执行查询 `SELECT * FROM table1 WHERE id = 44` 时,如果没有索引,系统需要逐行扫描整个...
数据库索引是数据库管理系统中用于加速数据检索的一种数据结构,它的设计目的是为了提高查询效率,减少数据访问的时间。本文将深入探讨数据库索引的概念、B-Tree数据结构以及索引的分类和作用。 首先,B-Tree是...
【数据库索引】是数据库管理系统中用于加速数据检索的一种数据结构。索引好比书籍的目录,能够快速定位到所需的数据行。根据物理存储方式,索引分为【聚簇索引】和【非聚簇索引】。聚簇索引是按照数据的实际存储顺序...
《Oracle与MySQL数据库索引设计与优化》这本书深入探讨了两个主流关系型数据库管理系统——Oracle和MySQL中的索引设计和优化策略。索引是数据库性能的关键因素,它们能够加速数据检索,提高系统效率,尤其在大数据量...
数据库索引作为数据库管理系统(DBMS)中的关键技术之一,其作用在于优化数据的检索速度和确保数据的唯一性。本文将深入探讨数据库索引的优缺点,以及如何在实际操作中合理地运用索引来提升数据库性能。 ### 数据库...
### 空间数据库索引技术的深度剖析 #### 核心知识点提炼: - **空间数据库索引技术的重要性**:空间数据库索引技术是提升空间数据库存储效率与空间检索性能的关键,尤其在处理大规模空间数据时更为显著。传统索引...
### Oracle数据库索引的维护 在Oracle数据库管理与优化的过程中,索引的维护是非常关键的一环。合理地创建、管理和优化索引能够显著提高查询性能,降低系统的响应时间,从而提升整个应用程序的效率。本文将从Oracle...