查询语句中的索引作用

michaelgy 2008-04-23 10:00:45
索引使用疑问:


表Product
聚集索引 CreateTime index1
非聚集索引 Class + SubClass index2
Color index3
Size index4

查询语句如下:
select * from Product where Color = 'R' and Class = '100'
使用到的索引 index2 , index3

我有点疑问的是既然数据页是由索引页指向的,那么应该就是从 index3出发,指向数据页; 但是如果用到2个索引的话,就是说index3出发,然后指向index2?

(是否在一句Sql中只能用到一个(组)索引?)
请高手指点,谢谢。


...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hery2002 2008-04-24
  • 打赏
  • 举报
回复
看看执行计划就知道了~
dawugui 2008-04-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 michaelgy 的回复:]
可能我问题没描述清楚。
我想知道的是,在一个sql查询语句中,可以有2个index同时作用么?

我知道复合索引肯定可以,因为它代表的还是一个(组)索引。
[/Quote]
有可能,如果是多个条件.如表有字段A,B,对A,B分别建立索引.

select * from A = 1 and B = 2

一般来说先使用A的索引,然后使用B的索引.
但也有可能查询时自动优化不是先使用A的索引.
michaelgy 2008-04-24
  • 打赏
  • 举报
回复
可能我问题没描述清楚。
我想知道的是,在一个sql查询语句中,可以有2个index同时作用么

我知道复合索引肯定可以,因为它代表的还是一个(组)索引。

flairsky 2008-04-23
  • 打赏
  • 举报
回复
Color = 'R' and Class = '100'
在color+class字段上建立索引!
-狙击手- 2008-04-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ojuju10 的回复:]

在color+class字段上建立索引!
[/Quote]
ojuju10 2008-04-23
  • 打赏
  • 举报
回复

如果数据量不是很大的情况下,根本就不需要建立索引,索引需要经常维护,否则会比没有索引更慢!
ojuju10 2008-04-23
  • 打赏
  • 举报
回复

在color+class字段上建立索引!

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧