首页 > 留学资讯 > 正文

sql语句优化怎么做的,建索引的时候要考虑什么

2024-05-17 14:40:31 | 合力留学网

sql语句优化怎么做的,建索引的时候要考虑什么很多朋友对这方面很关心,合力留学网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

sql语句优化怎么做的,建索引的时候要考虑什么

sql语句优化怎么做的,建索引的时候要考虑什么

1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。

sql语句优化怎么做的,建索引的时候要考虑什么合力留学网

sql 索引怎么去理解并应用?

1、聚集索引和非聚集索引
在SQL Server 2000数据库中,按照存储结构的不同,可以将索引分为聚集索引和非聚集索引。
聚集索引
聚集索引对表在物理数据页中的数据按索引列进行排序,然后再重新存储到磁盘上。即数据的实际存储按索引列值的大小顺序安排。由于表中的数据行只能以一种排序方式存储在磁盘上,所以一个表只能有一个聚集索引。(排序、重新存储数据行、建立聚集索引)
聚集索引对表中的数据一一进行排序,因此用聚集索引查找数据很快。但由于聚集索引需要将表的所有数据完全重新排列,所需要的空间也就特别大,大概相当于表中数据所占的120%。聚集索引一般创建在表中经常搜索的列或者按顺序访问的列上。
使用聚集索引的好处
�8�5 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。
�8�5 如果经常按照某一列,对从表中检索出来的数据进行排序,那对这一列创建聚集索引讲避免每次都对数据排序。

非聚集索引
非聚集索引具有完全独立于数据行的结构,使用非聚集索引不会影响数据表中记录的实际存储顺序。在一个表中最多可创建249个非聚集索引。
有些表包含多个索引。例如,上例中的索引1、2,还可以按学生姓名属性创建索引3,因为这是查找学生信息的最常用的方法。对于非聚集索引也是如此。可以为在表中查找数据时常用的每个列创建一个非聚集索引。
由于非聚集索引使用索引页存储,因此它比聚集索引需要较少的存储空间,但检索效率比聚集索引低。但由于一个表只能创建一个聚集索引,当用户需要建立多个索引时,就需要使用非聚集索引了。

sql语句优化怎么做的,建索引的时候要考虑什么

在sql中,建立索引用的命令是

创建索引的操作,可以使用alter命令或者create命令,其语法如下
alter table 表名 add index 索引名 (column_list) ;
alter table 表名 add unique (column_list) ;
alter table 表名 add primary key (column_list) ;
这三个分别为创建一般索引,唯一索引, 主键 索引,其中column_list为表的 字段名称,多个字段可以使用逗号隔开。
create的方式创建索引,不能创建主键索引

create index 索引名on 表名 (column_list) ;
create unique index 索引名 on 表名 (column_list) ;

以上就是合力留学网为大家带来的sql语句优化怎么做的,建索引的时候要考虑什么,希望能帮助到大家!

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“sql语句优化怎么做的,建索引的时候要考虑什么”相关推荐