本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)
--------------------------------
对于以下列创建索引是恰当的,这些列经常被:查询、排序、分组、联结、用来计算顺序统计(MIN、MAX或中值)。
对于以下列创建索引是不恰当的:仅接受很少不同值(如性别)、很少被用于查询、只有几行的小表的一部分。
索引不会改变数据,仅仅是快速访问数据的途径。
表可以没有或有多个索引。
不要超出需求创建索引。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);
当按照state加city对行排序时,DBMS使用这个索引。当按照state、city或city加state排序和检索时,这个索引是没用的。
索引和键的区别:索引是DBMS改善执行效率的物理机制(硬件相关),键是DBMS用来强制引用完整性和通过视图更新的逻辑。
索引是存储在硬盘上的文件,因此占用空间。如果使用得当,索引可以成为避开连续读取大表、减少硬盘存取的主要手段。当创建索引时,它使用的空间是相关表占用空间的1.5倍。
当索引完成时,大多数空间将被释放。
聚集索引是键值逻辑顺序决定表中相应行的物理顺序的索引。非聚集索引中,索引的逻辑顺序和行存储在硬盘上的物理顺序是不同的。表只可以有一个聚集索引,聚集索引通常可以改进运行效率。它们会让搜索变得很快,插入、删除和更新变得很慢。
大多数索引采用平衡树,或B树实现。
使用DROP INDEX删除索引
在任何时候删除索引都不会影响表(或其它索引),如果删除了索引,所有SQL和应用程序会继续正常运行。
删除索引通常因为:
相关表很小或用户不再访问索引列。
在插入、更新和删除操作后DBMS维护索引所需的时间超过了索引加速检索而节约的时间。
无法删除DBMS为主键约束和唯一约束自动创建的索引。
分享到:
相关推荐
二、SQL基础概念 1. 表(Table):SQL中的基本数据结构,由行(Row)和列(Column)组成,类似于电子表格。 2. 数据类型:SQL支持多种数据类型,如整数(INTEGER)、浮点数(FLOAT)、字符串(VARCHAR)、日期时间...
总结起来,“sql_init.zip”文件是netctoss项目数据库初始化的关键组成部分,它包含了创建和配置数据库所需的所有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 Server支持两种类型的索引:聚集索引和非聚集索引。 - **聚集索引**:表的数据按聚集索引键值顺序存储。一个表只能有一个聚集索引。 - **非聚集索引**:独立于表的数据存储,通过索引键值...
一、SQL基础 1. 数据库与表:SQL主要用于创建、查询、更新和管理数据库中的数据。数据库是一个组织有序的数据集合,而表则是存储数据的基本单元,由列(字段)和行(记录)组成。 2. DDL(Data Definition ...
1. SQL基础: - 数据库模型:了解关系型数据库的基本原理,如实体-关系模型(E-R Model),以及表和字段的概念。 - DDL(Data Definition Language):创建数据库和表,如CREATE DATABASE、CREATE TABLE等。 - ...
- 创建表时直接指定索引:`CREATE TABLE tbl_name (...) INDEX index_name (column_name,...);` - 也可以在表创建后添加索引:`ALTER TABLE tbl_name ADD INDEX index_name (column_name,...);` #### 三、查看...
### SQL Server 视图与索引详解 #### 一、视图的概念与操作 ##### 1.1 视图的基本概念 视图是基于SQL语句的结果集的一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,...
《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》适合须要学习T-SQL的各级程序员和数据库专业人员,是他们快速掌握T-SQL的必备参考图书。 致谢 引言 第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 ...
总结来说,索引视图是提高SQL Server 2000数据库查询性能的有效工具,尤其适用于需要频繁处理联接和聚合数据的场景。但同时,开发者必须注意索引视图的适用场景和维护成本,合理配置数据库环境和SET选项,并确保视图...
1. **SQL基础与语法**:面试通常会涉及到SQL的基本概念,如SELECT语句、JOIN操作、子查询、聚合函数(COUNT、SUM、AVG等)、WHERE和HAVING子句的区分。 2. **索引原理**:索引是提高查询速度的关键,面试中可能会问...
* SQL 索引:用于提高查询速度。 * SQL 优化:包括查询优化、索引优化、缓存优化等。 实践项目 * 构建网站:包括网站构建、万维网联盟(W3C)、浏览器信息、网站品质等。 * 数据库设计:包括数据库设计、数据模型...
主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...
统计信息是SQL Server进行查询优化的基础,及时更新统计信息能确保SQL Server做出准确的执行计划决策。 四、内存优化 1. **调整内存配置**:适当增加SQL Server的工作内存可以提高缓冲池的效率,减少磁盘I/O。 2....
### SQL Server索引文件迁移到文件组的知识点详解 #### 一、背景介绍 在SQL Server数据库管理系统中...通过上述步骤,我们可以有效地实现SQL Server索引文件的迁移工作,并为后续的数据管理和性能优化打下坚实的基础。
以下是对上述文件内容中提及的关键知识点的详细总结: 1. 选择最有效的表名顺序 在使用基于规则的优化器时,Oracle的解析器会按照从右到左的顺序处理FROM子句中的表名。这意味着在FROM子句中最后出现的表将作为基础...
根据提供的文件信息,本文将对SQL Server的基础知识点进行详细的总结与解释。这将涵盖数据库管理语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)等关键概念,并结合具体的示例来帮助读者更好地理解和掌握...
- **索引使用经验总结**:根据查询需求合理设计索引,避免过度索引。 #### 三、T-SQL 1. **T-SQL简介**: - T-SQL是SQL Server所支持的SQL方言,包含了标准SQL的所有特性,并增加了许多专有的扩展功能。 2. **T-...
以上是SQL Server中SQL语句的基础概念和常用操作,这些语句构成了SQL Server数据库管理的基础,使得我们能够高效地操作和管理数据库中的数据。了解并熟练掌握这些语句,对于数据库开发和维护至关重要。
7. 索引:索引可以显著提高查询速度,通过CREATE INDEX语句创建,INDEX可以基于一个或多个列。 8. 存储过程和触发器:存储过程是预编译的SQL语句集合,可以提高性能并简化复杂的操作;触发器则是在满足特定条件时...