5个回答
2013-04-17
展开全部
索引的作用就在于,为某个字段建立了索引之后,查询这个字段里面的数据的时候,效率更高,也就是快,
比如
create index abc on stu(age);
为stu表的age字段建立了索引,那么查询时,select * from stu where age > 10;
这个时候效率就高,主要体现在where语句,where age > 10 ,将age 作为查询的条件,age又加了索引所以高。
索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据,也就是当进行查询时,系统先搜索索引,从中找到数据的指针,再直接通过指针,直接定位到数据上,所以快。
缺点:
还有就是需要注意的,索引是查的效率高了,但是在表中插入或更新数据时,将有额外的操作来维护索引,所以其他的效率低了,还有占用存储空间,还有不要建立过多的索引,过多索引引起反作用!
你还有啥不明白的?
比如
create index abc on stu(age);
为stu表的age字段建立了索引,那么查询时,select * from stu where age > 10;
这个时候效率就高,主要体现在where语句,where age > 10 ,将age 作为查询的条件,age又加了索引所以高。
索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据,也就是当进行查询时,系统先搜索索引,从中找到数据的指针,再直接通过指针,直接定位到数据上,所以快。
缺点:
还有就是需要注意的,索引是查的效率高了,但是在表中插入或更新数据时,将有额外的操作来维护索引,所以其他的效率低了,还有占用存储空间,还有不要建立过多的索引,过多索引引起反作用!
你还有啥不明白的?
推荐于2016-06-03 · 知道合伙人数码行家
关注
展开全部
对于SQL Server数据库来说,只有建立了合理的数据库索引才能在一定程度上提高SQL Server数据库性能。
一、聚簇索引(clustered indexes)的使用
聚簇索引是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页。
建立聚簇索引的思想是:
1、大多数表都应该有聚簇索引或使用分区来降低对表尾页的竞争,在一个高事务的环境中,对最后一页的封锁严重影响系统的吞吐量。
2、在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查
、>=)或使用group by或order by的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行保证物理上毗连在一起而不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。
3、在一个频繁发生插入操作的表上建立聚簇索引时,不要建在具有单调上升值的列(如IDENTITY)上,否则会经常引起封锁冲突。
4、在聚簇索引中不要包含经常修改的列,因为码值修改后,数据行必须移动到新的位置。
5、选择聚簇索引应基于where子句和连接操作的类型。
聚簇索引的侯选列是:
1、主键列,该列在where子句中使用并且插入是随机的。
2、按范围存取的列,如
100 and pri_order < 200。
3、在group by或order by中使用的列。
4、不经常修改的列。
5、在连接操作中使用的列。
一、聚簇索引(clustered indexes)的使用
聚簇索引是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页。
建立聚簇索引的思想是:
1、大多数表都应该有聚簇索引或使用分区来降低对表尾页的竞争,在一个高事务的环境中,对最后一页的封锁严重影响系统的吞吐量。
2、在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查
、>=)或使用group by或order by的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行保证物理上毗连在一起而不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。
3、在一个频繁发生插入操作的表上建立聚簇索引时,不要建在具有单调上升值的列(如IDENTITY)上,否则会经常引起封锁冲突。
4、在聚簇索引中不要包含经常修改的列,因为码值修改后,数据行必须移动到新的位置。
5、选择聚簇索引应基于where子句和连接操作的类型。
聚簇索引的侯选列是:
1、主键列,该列在where子句中使用并且插入是随机的。
2、按范围存取的列,如
100 and pri_order < 200。
3、在group by或order by中使用的列。
4、不经常修改的列。
5、在连接操作中使用的列。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-17 · 知道合伙人数码行家
关注
展开全部
当where 条件中的字段上有索引的时候可以加快查询速度。
如果没索引就要把整张表的数据全部扫描一次才能定位到数据。
如果没索引就要把整张表的数据全部扫描一次才能定位到数据。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-17
展开全部
楼上说的很清楚。我再举个例子。
比如,表,usersinfo,有一列是 姓名 列。
建立索引前,如果要搜索,姓名 叫张三的人, 则需要对整个表进行扫描。
对 姓名列建立索引后,再搜索,则只需要扫描索引 --就像一本书的目录。
比如,表,usersinfo,有一列是 姓名 列。
建立索引前,如果要搜索,姓名 叫张三的人, 则需要对整个表进行扫描。
对 姓名列建立索引后,再搜索,则只需要扫描索引 --就像一本书的目录。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
索引的作用是加快查找
索引是B树,可以快速定位到需要的数据上。
索引也是需要系统维护,所以会增加系统的负担。
索引是B树,可以快速定位到需要的数据上。
索引也是需要系统维护,所以会增加系统的负担。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询