SQL索引的创建与删除

简介: 索引就好像我们书中的目录,是这一本书的综合,告诉你在书的什么地方能够找到一个特定的向,一看目录就可以看到你要找的东西在哪一页,不用从书的起始页开始,缩减了你的查询时间。

索引作为SQL优化查询的一种方法,它可以很好的帮助我们加快数据的查询速度,那为什么我们不去正确的使用它呢?


一、什么是索引?


索引是一种特殊的查询表,数据库搜索引擎可以使用它加速数据检索。它们也组织数据库存储数据的方式


索引就好像我们书中的目录,是这一本书的综合,告诉你在书的什么地方能够找到一个特定的向,一看目录就可以看到你要找的东西在哪一页,不用从书的起始页开始,缩减了你的查询时间。


目的:加快对表中记录的查找或排序


二、什么时候使用索引?


对于一些我们经常需要搜索的列上,可以使用索引,加快搜索速度


在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度


对于那些在查询中很少使用或者参考的列不应该创建索引


对于那些只有很少数据值的列也不应该增加索引


三、优缺点


优点:1.能够加快表与表之间的连接速度,这对于提高数据的参考完整性方面具有重要作用


          2.能提高数据的搜索及检索速度,符合数据库建立的初衷,例,SELECT查询和WHERE子句


          3.在信息检索过程中,若使用分组及排序子句进行时,通过建立索引能有效的减少检索过程中所需的分组及排序时间,                    提高检索效率


缺点:1.减慢数据的输入速度,例,UPDATE语句和INSERT语句


          2.在数据库建立过程中,需花费较多的时间去建立并维护索引,特别是随着数据总量的增加,所花费的时间将不断递增


          3.在数据库中创建的索引需要占用一定的物理存储空间


MyTable

Id Name DateOfBirth Adress
3 索菲亚 1997-09-01 USA
1 贝拉 1999-08-07 CN
2 爱德华 1998-04-20 CN
4 雅各布 1998-11-28 FA


四、创建索引


创建索引需要使用CREATE INDEX语句,它允许用户命名索引、指定表和需要索引的单个列或多个列、指定索引是按照升序还是降序排列。基本格式如下:


单列索引:


CREATE INDEX <index_name>
ON <table_name> (<column_names>)


多列索引:当用户经常搜索多列时


CREATE INDEX <index_name>
ON <table_name> (<column_name1,column_name2>)


执行下面语句,向MyTable表中添加一个名为member_name_index的索引,索引了Id列和Name列:


CREATE INDEX member_name_index
ON MyTable (Id, Name);


执行下面语句查询:


SELECT Id, Name
FROM MyTable;


20200223200016279.png默认升序排列


唯一索引(先根据姓名按照降序排序结果,然后根据出生日期排序)


CREATE UNIQUE INDEX member_name_indx
ON MyTable (Name DESC, DateOfBirth);


执行下面语句查询:


SELECT Name, DateOfBirth
FROM MyTable;


20200223200915732.png


五、删除索引


基本格式:


DROP INDEX MyTable.member_name_index;


相关文章
|
2月前
|
SQL 数据库 开发者
MSSQL性能调优实战技巧:索引优化、SQL语句微调与并发控制策略
在Microsoft SQL Server(MSSQL)的管理与优化中,性能调优是一项复杂但至关重要的任务
|
2月前
|
SQL 监控 数据库
MSSQL性能调优实战策略:索引优化、SQL语句重构与并发控制
在Microsoft SQL Server(MSSQL)的管理和优化过程中,性能调优是确保数据库高效运行、满足业务需求的重要环节
|
2月前
|
SQL 运维 监控
MSSQL性能调优实战:索引优化、SQL查询效率提升与并发控制策略
在Microsoft SQL Server(MSSQL)的日常运维与性能优化中,精准的策略与技巧是实现高效数据库管理的关键
|
2月前
|
SQL 监控 数据库
MSSQL性能调优实战技巧:索引优化策略、SQL查询重构与并发控制详解
在Microsoft SQL Server(MSSQL)的管理与优化过程中,性能调优是确保数据库高效运行的关键环节
|
2月前
|
SQL 运维 监控
MSSQL性能调优实战:索引深度优化、SQL查询技巧与高效并发控制
在Microsoft SQL Server(MSSQL)的运维环境中,性能调优是确保数据库高效、稳定运行的核心任务
|
5天前
|
存储 SQL 关系型数据库
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。 排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。 MySQL调优: 基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表; 表设计优化:数据类型优化、冷热数据分表等。 索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。 SQL优化。
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
|
2月前
|
SQL 监控 数据库
MSSQL性能调优实战指南:精准索引策略、SQL查询优化与高效并发控制
在Microsoft SQL Server(MSSQL)的性能调优过程中,精准索引策略、SQL查询优化以及高效并发控制是三大核心要素
|
5天前
|
存储 关系型数据库 MySQL
MySQL高级篇——覆盖索引、前缀索引、索引下推、SQL优化、主键设计
覆盖索引、前缀索引、索引下推、SQL优化、EXISTS 和 IN 的区分、建议COUNT(*)或COUNT(1)、建议SELECT(字段)而不是SELECT(*)、LIMIT 1 对优化的影响、多使用COMMIT、主键设计、自增主键的缺点、淘宝订单号的主键设计、MySQL 8.0改造UUID为有序
MySQL高级篇——覆盖索引、前缀索引、索引下推、SQL优化、主键设计
|
22天前
|
SQL 分布式计算 MaxCompute
一种基于ODPS SQL的全局字典索引分布式计算思路
本文提供一种能充分利用分布式计算资源来计算全局字典索引的方法,以解决在大数据量下使用上诉方式导致所有数据被分发到单个reducer进行单机排序带来的性能瓶颈。
|
2月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之相同的SQL语句在不同时间执行EXPLAIN计划显示出不同的索引类型,是什么原因
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之相同的SQL语句在不同时间执行EXPLAIN计划显示出不同的索引类型,是什么原因