数据库优化之创建索引

简介:

   索引提供指针以指向存储在表中指定列的数据,然后根据指定的次序排列这些指针,在根据指针到达包含该值的行


什么是索引

    数据库中的索引和数据的目录相似,利用目录快速查找所需的信息。在数据库中,索引是某个表中一列或者若干列值的集合,以及物流标识这些值的数据页的逻辑指针清单。是SQL Server编排数据的内部方法,通过索引,可快速查找数据,而无需扫描整个表

    索引页是数据库中存储索引的数据页,存放数据行的关键字页以及该数据行的地址指针


索引分类

    在SQL Server中,常见的索引有以下六类:

唯一索引:不允许两行具有相同的索引值

主键索引:要求主键中每个值是唯一的

聚集索引:数据存放的物理顺序与索引顺序相同

非聚集索引:数据存放的物理顺序与索引顺序不相同

复合索引:将多个列组合而成的索引

全文索引:一种特殊类型的基于标记的功能性索引

注意:在SQL Server中,一个表只能创建一个聚集索引,但可以创建多个非聚集索引。设置某列为主键,该列就默认为聚集索引


创建索引

   创建索引的方法有两种:使用SSMS和T-SQL语句

(1)使用SSMS创建索引

    可以展开表,选择“新建索引”,也可以右击表,选择“设计”,右击列,选择“索引/键”,创建索引

杨书凡26.png

杨书凡27.png


(2)使用T-SQL语句创建索引

创建聚集索引语法:

create clustered index 索引名 on 表名(列名)

杨书凡29.png


创建非聚集索引语法:

create [nonclustered] index 索引名 on 表名(列名)

杨书凡28.png


创建唯一索引

create unique [clustered|nonclustered] index 索引名 on 表名(列名)

杨书凡30.png


删除索引

drop index 索引名 on 表名


索引的选择原则

    使用索引可加快数据检索速度,但为每个列都建立索引没有必要。因为索引自身也需要维护,并占用一定的资源,可以按照以下标准选择建立索引的列

* 频繁搜索、查询选择的列

* 经常排序、分组的列

* 经常用于连接的列(主键、外键)


    不要使用下面的列建立索引,因为索引所花的时间比在表中逐行搜索的时间更长

* 仅包含几个值的列

* 表中仅包含几行











本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/2045681,如需转载请自行联系原作者
目录
相关文章
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第六章(操作本地数据库前置知识优化)
【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。
14 0
|
20天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
1月前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
1月前
|
存储 搜索推荐 关系型数据库
深度探讨数据库索引的数据结构及优化策略
深度探讨数据库索引的数据结构及优化策略
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】7、SQL 优化
【MySQL 数据库】7、SQL 优化
49 0
|
2月前
|
存储 监控 数据库
《优化数据库性能的六大技巧》
数据库作为后端开发中至关重要的一环,在实际应用中经常遇到性能瓶颈问题。本文将分享六大实用技巧,帮助开发者优化数据库性能,提升系统响应速度。
|
1月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
170 0
|
20天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
8天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。

热门文章

最新文章