专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » sql索引:充分利用SQL索引 »正文

sql索引:充分利用SQL索引

来源: 发布时间:星期五, 2008年11月14日 浏览:299次 评论:0
背景:目前WEB的普及太快,很多网站都会因为大流量的数据而发生服务器习惯性死机,一个查询语句只能适用于一定的网络环境.没有优化的查询当遇上大数据量时就不适用了.

本文主旨:讨论什么情况下能利用上索引.

索引:创建索引可以根据查询业务的不同分为两种:单一列的索引,联合索引. 顾名思义,单一列索引就是指在表的某一列上创建索引,联合索引是在多个列上联合创建索引.

优缺点比较:


1):索引所占用空间:单一列索引相对要小.

2):索引创建时间:单一列索引相对短.


3):索引对insert,update,delete的影响程序:单一列索引要相对低.


4):在多条件查询时,联合索引效率要高.


索引的使用范围:单一列索引可以出现在where 条件中的任何位置,而联合索引需要按一定的顺序来写.


本文所用测试软件环境如下:SQL05

DEMO:创建一个人员表,包含人员ID,姓名.在人员ID上创建一个聚集索引,在first_name和last_name上创建一个联合

索引.


create table person (id int, last_name varchar(30), first_name varchar(30))
create unique clustered index person_id _disibledevent='1'


,无论前后,都会利用上联合索引.


3):查询条件中没有出现联合索引的第一列,而出现联合索引的第二列,或者第三列,都不会利用联合索引查询.


单一列索引的应用总结:

1):只要条件列中出现索引列,无论在什么位置,都能利用索引查询.


两者的共同点:

1):要想利用索引,都要符合SARG标准.

2) :都是为了提高查询速度.

3):都需要额外的系统开销,磁盘空间.


补充说明: stmtText信息来产生,在查询语句前面加上:SET STATISTICS PROFILE on.可以通过运行它,来观察你的查询是否合理,这样才能真正做到优化.

总结:即使表上创建了索引,但如果查询语句写的不科学的话(不符合SARG标准),也于事无补,要根据表索引情况来优化查询语句,如没有合适的索引可用,则要创建相应索引.
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: