首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >where子句和join子句索引

where子句和join子句索引
EN

Stack Overflow用户
提问于 2015-11-05 20:30:54
回答 1查看 1.6K关注 0票数 1

请考虑以下几点:

  • 具有下列列的Table1 : a,b,m
  • 具有下列列的Table2 : a,b,x,y

这是我的疑问:

代码语言:javascript
复制
select t2.a, t2.b, t1.m
from table2 t2
join table1 t1 on t1.a = t2.a 
              and t2.b = t2.b
where t2.x = 'some value'
  and t2.y = 'some other value'

我必须优化这个查询。

我有以下非聚类索引:

  • table1索引,列a和b
  • table2索引,列a和b
  • table2上的索引,列为x和y

我会从table2上的另一个索引中获益吗?它将覆盖这个查询中使用的所有列: a、b、x和y?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-15 06:05:50

考虑到x和y组合将提供一个单行,在x和y上有一个table2索引,在a和b上有一个table1索引。或者,您可以使第一个索引唯一,并添加包含的列,如下所示:

代码语言:javascript
复制
CREATE UNIQUE INDEX IX_table2_x_y ON table2 (x,y) INCLUDE (a,b)
CREATE INDEX IX_table1_a_b ON table1 (a,b) INCLUDE (m)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33554199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档