加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 使用一个大表和一个小表加速查询,简单的内连接

发布时间:2020-12-12 08:33:46 所属栏目:MsSql教程 来源:网络整理
导读:我有一个包含60行和5列的表T1:ID1,ID2,info1,info2,info3. 我有一个表T2,有120万行和另外5列:ID3,info4,info5,info6. 我想从ID2匹配的所有行中获取(ID1,info6).目前我的查询如下所示: SELECT T1.ID1,T2.ID2,T2.info4,T2.info5,T2.info6 FROM T1,T2 WHERE T
我有一个包含60行和5列的表T1:ID1,ID2,info1,info2,info3.

我有一个表T2,有120万行和另外5列:ID3,info4,info5,info6.

我想从ID2匹配的所有行中获取(ID1,info6).目前我的查询如下所示:

SELECT T1.ID1,T2.ID2,T2.info4,T2.info5,T2.info6
  FROM T1,T2
 WHERE T1.ID2 = T2.ID2;

这大约需要15秒才能运行.我的问题是 – 如果需要很长时间,如果没有,我怎样才能加快速度?我认为它不应该因为T1太小了.

我要求PostgreSQL解析查询,然后它说它会哈希T2,然后哈希加入与T1的哈希.似乎哈希T2需要这么长时间.有没有办法编写查询,所以它不必哈希T2?或者,有没有办法让它缓存T2的哈希值,所以它不会重新做到这一点?这些表格每隔几天才会更新一次.

如果它有所不同,T1是在会话早期创建的临时表.

解决方法

它不应该花那么久:)

在T2(ID2)上创建索引应该可以提高查询的性能:

CREATE INDEX idx_t2_id2 ON t2 (id2);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读