如何通过加入两个大表并按第一个唯一索引排序来提高性能?
我只需要第一个表格数据排序依据。没有订单查询会表现如此之快。
以下是查询示例
select a.* from T1 a, T2 b where a.c1 = b.c2;
select a.* from T1 a, T2 b where a.c1 = b.c2 order by a.id;
仅供参考,T1和T2具有适当的指数。
T1表计数为" 54483938"
T2表计数为" 54483820"
我对T1数据更感兴趣,在T1上存在T1记录。
我尝试使用in运算符查询,它花了我300秒。
答案 0 :(得分:2)
您可以尝试查询的三种形式:
join
(你有)in
(您声称已经运行)exists
exists
版本是:
select a.*
from T1 a
where exists (select 1 from T2 b where a.c1 = b.c2)
order by a.id;
对于此查询,我建议在T1(id, c1)
和T2(c2)
上建立索引。