`

SQL基础总结(十):索引

 
阅读更多

 

 

本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)

--------------------------------

对于以下列创建索引是恰当的,这些列经常被:查询、排序、分组、联结、用来计算顺序统计(MINMAX或中值)。

对于以下列创建索引是不恰当的:仅接受很少不同值(如性别)、很少被用于查询、只有几行的小表的一部分。

 

索引不会改变数据,仅仅是快速访问数据的途径。

表可以没有或有多个索引。

 

不要超出需求创建索引。DBMS在插入、更新或删除行之后必须更新索引。随着表索引的增长,DBMS要花费越来越多的时间维护索引,行的修改速度会越来越慢。因此,不要在一张表上创建超过10个索引。

 

在索引被创建后,DBMS自动维护和使用索引。

 

索引可以引用表的一列或多列。引用一列的索引称为简单索引,引用多列的索引称为组合索引。组合索引中的列在表中不一定是相邻的,简单索引无法垮多个表。

 

列的顺序在组合索引中是重要的。组合索引只作用于定义它的那组列,并非分别作用于每个列或相同列地其他顺序。

 

为了高效的排序和检索,索引要确保唯一性。唯一索引强制表索引中列(或多列)的值唯一。如果要在有重复值的列上创建唯一索引,DBMS将产生错误并拒绝创建。当创建主键约束和唯一约束时,DBMS自动创建唯一索引。

 

索引不是SQL标准的一部分,所以与索引有联系的SQL语句因DBMS不同而有差异。

CREATE [UNIQUE] INDEX index ON table(index_columns);

index_columns是要创建索引的一个或多个用逗号分隔的列名。

一个数据库中索引名称必须唯一。

试图在唯一索引中插入或更新重复的值,DBMS会产生错误并取消操作。

组合索引:

CREATE TABLE state_city_idx ON authors(state,city);

当按照statecity对行排序时,DBMS使用这个索引。当按照statecitycitystate排序和检索时,这个索引是没用的。

 

索引和键的区别:索引是DBMS改善执行效率的物理机制(硬件相关),键是DBMS用来强制引用完整性和通过视图更新的逻辑。

 

索引是存储在硬盘上的文件,因此占用空间。如果使用得当,索引可以成为避开连续读取大表、减少硬盘存取的主要手段。当创建索引时,它使用的空间是相关表占用空间的1.5倍。

当索引完成时,大多数空间将被释放。

 

聚集索引是键值逻辑顺序决定表中相应行的物理顺序的索引。非聚集索引中,索引的逻辑顺序和行存储在硬盘上的物理顺序是不同的。表只可以有一个聚集索引,聚集索引通常可以改进运行效率。它们会让搜索变得很快,插入、删除和更新变得很慢。

 

大多数索引采用平衡树,或B树实现。

 

使用DROP INDEX删除索引

在任何时候删除索引都不会影响表(或其它索引),如果删除了索引,所有SQL和应用程序会继续正常运行。

删除索引通常因为:

相关表很小或用户不再访问索引列。

在插入、更新和删除操作后DBMS维护索引所需的时间超过了索引加速检索而节约的时间。

 

无法删除DBMS为主键约束和唯一约束自动创建的索引。

分享到:
评论

相关推荐

    ISO IEC 9075-2-2023 (源文件,可复制文字)信息技术-数据库语言SQL 第2部分:基础.rar

    二、SQL基础概念 1. 表(Table):SQL中的基本数据结构,由行(Row)和列(Column)组成,类似于电子表格。 2. 数据类型:SQL支持多种数据类型,如整数(INTEGER)、浮点数(FLOAT)、字符串(VARCHAR)、日期时间...

    sql_init.zip_SQL INIT_dinnerlcl_sql init_sql:init_sql:init()

    总结起来,“sql_init.zip”文件是netctoss项目数据库初始化的关键组成部分,它包含了创建和配置数据库所需的所有SQL指令。理解并正确使用这个脚本对于项目顺利启动至关重要,同时也体现了数据库设计和管理在软件...

    SQL 语法 SQL 总结 SQL教程

    SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...

    SQL修复简单数据库索引错误

    根据存储类型的不同,SQL Server支持两种类型的索引:聚集索引和非聚集索引。 - **聚集索引**:表的数据按聚集索引键值顺序存储。一个表只能有一个聚集索引。 - **非聚集索引**:独立于表的数据存储,通过索引键值...

    sql练习总结sql经验总结

    一、SQL基础 1. 数据库与表:SQL主要用于创建、查询、更新和管理数据库中的数据。数据库是一个组织有序的数据集合,而表则是存储数据的基本单元,由列(字段)和行(记录)组成。 2. DDL(Data Definition ...

    面试SQL经典总结

    1. SQL基础: - 数据库模型:了解关系型数据库的基本原理,如实体-关系模型(E-R Model),以及表和字段的概念。 - DDL(Data Definition Language):创建数据库和表,如CREATE DATABASE、CREATE TABLE等。 - ...

    查询索引SQL实践精华

    - 创建表时直接指定索引:`CREATE TABLE tbl_name (...) INDEX index_name (column_name,...);` - 也可以在表创建后添加索引:`ALTER TABLE tbl_name ADD INDEX index_name (column_name,...);` #### 三、查看...

    SQL_Server视图和索引

    ### SQL Server 视图与索引详解 #### 一、视图的概念与操作 ##### 1.1 视图的基本概念 视图是基于SQL语句的结果集的一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

     《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》适合须要学习T-SQL的各级程序员和数据库专业人员,是他们快速掌握T-SQL的必备参考图书。 致谢 引言 第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 ...

    浅析SQL Server 2000索引视图:使用索引视图提高查询性能.pdf

    总结来说,索引视图是提高SQL Server 2000数据库查询性能的有效工具,尤其适用于需要频繁处理联接和聚合数据的场景。但同时,开发者必须注意索引视图的适用场景和维护成本,合理配置数据库环境和SET选项,并确保视图...

    【整理】数据库面试题索引sql优化+数据库SQL优化总结之百万级数据库优化

    1. **SQL基础与语法**:面试通常会涉及到SQL的基本概念,如SELECT语句、JOIN操作、子查询、聚合函数(COUNT、SUM、AVG等)、WHERE和HAVING子句的区分。 2. **索引原理**:索引是提高查询速度的关键,面试中可能会问...

    SQL 高级教程

    * SQL 索引:用于提高查询速度。 * SQL 优化:包括查询优化、索引优化、缓存优化等。 实践项目 * 构建网站:包括网站构建、万维网联盟(W3C)、浏览器信息、网站品质等。 * 数据库设计:包括数据库设计、数据模型...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    sql server 优化总结

    统计信息是SQL Server进行查询优化的基础,及时更新统计信息能确保SQL Server做出准确的执行计划决策。 四、内存优化 1. **调整内存配置**:适当增加SQL Server的工作内存可以提高缓冲池的效率,减少磁盘I/O。 2....

    SQL SERVER索引文件迁移到文件组

    ### SQL Server索引文件迁移到文件组的知识点详解 #### 一、背景介绍 在SQL Server数据库管理系统中...通过上述步骤,我们可以有效地实现SQL Server索引文件的迁移工作,并为后续的数据管理和性能优化打下坚实的基础。

    SQL语句优化总结

    以下是对上述文件内容中提及的关键知识点的详细总结: 1. 选择最有效的表名顺序 在使用基于规则的优化器时,Oracle的解析器会按照从右到左的顺序处理FROM子句中的表名。这意味着在FROM子句中最后出现的表将作为基础...

    SQL Server基础总结

    根据提供的文件信息,本文将对SQL Server的基础知识点进行详细的总结与解释。这将涵盖数据库管理语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)等关键概念,并结合具体的示例来帮助读者更好地理解和掌握...

    SQLServer基础篇

    - **索引使用经验总结**:根据查询需求合理设计索引,避免过度索引。 #### 三、T-SQL 1. **T-SQL简介**: - T-SQL是SQL Server所支持的SQL方言,包含了标准SQL的所有特性,并增加了许多专有的扩展功能。 2. **T-...

    sql server 中sql语句大总结

    以上是SQL Server中SQL语句的基础概念和常用操作,这些语句构成了SQL Server数据库管理的基础,使得我们能够高效地操作和管理数据库中的数据。了解并熟练掌握这些语句,对于数据库开发和维护至关重要。

    学习SQL数据库的自我总结

    7. 索引:索引可以显著提高查询速度,通过CREATE INDEX语句创建,INDEX可以基于一个或多个列。 8. 存储过程和触发器:存储过程是预编译的SQL语句集合,可以提高性能并简化复杂的操作;触发器则是在满足特定条件时...

Global site tag (gtag.js) - Google Analytics