sql 索引

3553人阅读 2021/5/25 15:51 总访问:652324 评论:0 收藏:0 手机
分类: SQL

前言

SQL索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息

创建索引的语法

create index 索引名 on 表(字段)

索引分为聚集索引和非聚集索引

  1. 聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个

  2. 聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续

  3. 聚集索引:物理存储按照索引排序引的键值逻辑顺序决定了表数据行的物理存储顺序

  4. 非聚集索引:物理存储不按照索引排序非聚集索引就是普通索引了,仅仅只是对数据列创建相应的索引,不影响整个表的物理存储顺序


唯一索引:

 唯一索引不止用于提升查询性能,还用于保证数据完整性。唯一索引不允许向表中插入任何重复值。其基本语法如下所示:

CREATE UNIQUE INDEX index_name on table_name (column_name);


聚簇索引:

 聚簇索引在表中两个或更多的列的基础上建立。其基本语法如下所示:

CREATE INDEX index_name on table_name (column1, column2);

隐式索引:

 隐式索引由数据库服务器在创建某些对象的时候自动生成。例如,对于主键约束和唯一约束,数据库服务器就会自动创建索引。


DROP INDEX 命令:

 索引可以用 SQL DROP 命令删除。删除索引时应当特别小心,数据库的性能可能会因此而降低或者提高。

 其基本语法如下:

DROP INDEX table_name.index_name;

什么时候应当避免使用索引?


 尽管创建索引的目的是提升数据库的性能,但是还是有一些情况应当避免使用索引。下面几条指导原则给出了何时应当重新考虑是否使用索引:

  • 小的数据表不应当使用索引;

  • 需要频繁进行大批量的更新或者插入操作的表;

  • 如果列中包含大数或者 NULL 值,不宜创建索引;

  • 频繁操作的列不宜创建索引。


    索引

  • SQL 索引_w3cschool

索引

--数据表里有二十万条数据
create table rmb 
(
	id int primary key identity(1,1),
	sid varchar(899) ,
	money int check (money >=0) 
)
declare @num int = 0
while(@num<200000)
begin
select @num = @num +1
insert rmb values('ns00835更合适热潮都是打过去额外恶2354'+CAST(@num as varchar(10)) ,1000)
end

查询没有索引的字段


给sid字段创建suoyin

create index sid_index on rmb(sid)


相比两个字段,创建索引的字段比没创建索引的字段查询效率更快,而且开销更小

评价
脚踏实地,一步一个脚印
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术