昨天在优化一条SQL,冥思苦想无果,业务逻辑过了三遍还是无从下手,最后在别人的指引下加个个索引,速度提升十倍不止。。。(之前没用过索引,特此复习加深印象)
一、索引的概念
索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
二、索引的特点
1.索引可以加快数据库的检索速度
2.索引降低了数据库插入、修改、删除等维护任务的速度
3.索引创建在表上,不能创建在视图上
4.索引既可以直接创建,也可以间接创建
5.可以在优化隐藏中,使用索引
6.使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引
7.其他
三、索引的优点
1.创建唯一性索引,保证数据库表中每一行数据的唯一性
2.大大加快数据的检索速度,这也是创建索引的最主要的原因
3.加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
5.通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。
四、索引的缺点
1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大
3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度
五、索引分类
1.直接创建索引和间接创建索引
直接创建索引: CREATE INDEX mycolumn_index ON mytable (myclumn)
间接创建索引:定义主键约束或者唯一性键约束,可以间接创建索引
2.普通索引和唯一性索引
普通索引:CREATE INDEX mycolumn_index ON mytable (myclumn)
唯一性索引:保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用
CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)
3.单个索引和复合索引
单个索引:即非复合索引
复合索引:又叫组合索引,在索引建立语句中同时包含多个字段名,最多16个字段
CREATE INDEX name_index ON username(firstname,lastname)
4.聚簇索引和非聚簇索引(聚集索引,群集索引)
聚簇索引:物理索引,与基表的物理顺序相同,数据值的顺序总是按照顺序排列
CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH
ALLOW_DUP_ROW(允许有重复记录的聚簇索引)
非聚簇索引:CREATE UNCLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)
相关推荐
倒排索引基本概念 文档(Document):一般搜索引擎的处理对象是互联网网页,而文档这个概念要更宽泛些,代表以文本形式存在的存储对象,相比网页来说,涵盖更多种形式,比如 Word,PDF,html,XML 等不同格式的文件...
8.1 索引基本概念 索引允许我们在不扫描整个表的情况下找到所需的数据,可以为单个列或者一组列创建。通常,索引采用B树(Balanced Tree)结构,确保高效的数据查找。索引项按照数据页(如SQL Server中的8KB)存储,...
二、倒排索引基本概念 1. 文档(Document):指以文本形式存在的存储对象,涵盖多种格式的文件和文本信息。 2. 文档集合(Document Collection):由若干文档构成的集合。 3. 文档编号(Document ID):搜索引擎内部将每...
#### 二、索引基本概念及其优缺点 ##### 1. 基本概念 - **搜索码**:索引的一个或多个字段组成的集合,用于快速定位特定的数据记录。 - **数据目录项**:索引中的元素,记录了关于数据的具体信息,包括但不限于记录...
了解基本的索引概念,可以通过查询`DBA_INDEXES`视图获取所有索引的信息,而`USER_INDEXES`视图则能显示特定模式的索引。`USER_IND_COLUMNS`视图则提供了索引列的详细信息。 组合索引,也称为concatenated索引,...
#### 一、索引的基本概念 在数据库中,索引是一种特殊的文件结构,它的主要目的是为了提高数据检索的速度。索引通过创建一种数据结构(例如B树)来实现这一点,这种结构允许数据库管理系统能够快速定位到数据所在的...
索引基本概念包括主索引、候选索引和普通索引等。在表设计器中建立索引可以方便地对表进行排序和查找。索引文件扩展名为.dcx,建立索引有助于提升数据检索效率。 综上所述,"4. Visual Foxpro 数据库及其操作.ppt...
计算机操作系统基本概念集合 以下是对计算机操作系统基本概念的总结和解释: 一、操作系统的基本概念 操作系统是计算机系统中的基础软件,提供了三种类型的使用接口:命令方式、系统调用和图形用户界面。操作系统...
### 关于索引概念、特点、优点、缺点、分类及使用的详细解读 #### 索引的概念 ...通过理解索引的基本概念、特点、优缺点以及不同类型和使用方法,可以更好地管理数据库性能,提升系统的整体效率。
实验目的是基于已有的汽车用品网上商城数据库 Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立、视图的查询、视图的更新、视图的删除,体会视图带来的方便;练习索引的创建和删除,对比...
本文将详细介绍 Lucene 的基本实例,涵盖索引的工作方式、Analyzer、Document、Field、Term 等概念,并阐述 Lucene 的结构和组件。 Lucene 的工作方式: Lucene 的索引工作可以分为两部分:写入和读出。写入流程中...
**1.1 索引基本概念** - **定义**:索引是帮助MySQL高效获取数据的数据结构。 - **类型**: - **唯一索引**:确保每条记录都是唯一的。 - **主键索引**:一种特殊的唯一索引,不允许有重复值。 - **全文索引**:...
1.1 基本原则:索引设计应遵守基本原则,即索引列的选择、索引类型的选择、索引的维护等。 1.2 主关键字的约束:主关键字是数据库表中的唯一标识符,索引设计应遵守主关键字的约束,确保数据的一致性和唯一性。 ...
以下是一些关于Oracle执行计划的基本概念: 1. **Rowid**: Rowid是Oracle用来标识表中每行数据的唯一地址,它是一个伪列,虽然在表中不实际存储,但可以通过SQL查询访问。Rowid在行的生命周期内保持不变,即使行...
了解了这些基本概念后,我们可以使用MySQL提供的工具进行分析和优化。例如,`EXPLAIN`语句可以帮助我们理解查询的执行计划,查看索引是否被正确使用。`ANALYZE TABLE`命令可以更新表的统计信息,帮助优化器做出更好...
首先,让我们了解索引的基本概念。索引是数据库为了快速定位数据而创建的一种数据结构,类似于书籍的目录。它减少了数据库执行查询时扫描整个表的次数,从而显著提高了查询速度。在数据量庞大的情况下,索引的重要性...
在IT行业中,索引是一种非常重要的概念,尤其是在数据库管理和数据检索领域。索引如同书籍的目录,能够极大地提高数据查询的效率,使我们能够在海量的数据中迅速定位到所需的信息。本篇文章将深入探讨索引的基本原理...
首先,理解索引的基本概念。索引是一种特殊的数据结构,它存储在表空间中,用于加速对表数据的访问。当执行查询时,Oracle数据库能够利用索引来避免全表扫描,转而执行索引扫描,从而提高查询速度。然而,创建和维护...
普通索引是最基本的索引,它没有任何限制。唯一索引保证了每个索引值的唯一性。主键索引是一种特殊的唯一索引,它同时也是一种聚簇索引。全文索引是用于全文搜索的索引。 五、索引的创建 索引的创建可以使用CREATE...