gpt4 book ai didi

sql - 在 POSTGRESQL 中比较 2 个巨大表的更有效方法

转载 作者:行者123 更新时间:2023-11-29 12:59:55 26 4
gpt4 key购买 nike

我有一个请求,将一个包含约 1700 万个项目的表与另一个包含超过 8000 万个项目的表进行比较。我使用“IN”运算符:

SELECT COUNT(1) 
FROM table1
WHERE mykey IN (SELECT mykey FROM table2 WHERE (thematique = '1'))

这是完美的工作,但在非常非常长的时间......

做同样的事情是否是更好的方法,无论如何是更快的方法?

也许没有“IN”运算符?

最佳答案

我认为加快此查询的最佳方法是在 table2 (thematique, mykey) 上建立索引。然后 thematique 1 记录很容易找到,并且可以立即访问它们的 mykeys,甚至无需访问表。

我不认为使用 INEXISTSINTERSECT 会有很大的不同(尽管 MySQL 以IN 子句弱)。由于 INTERSECT 是为了在两个集合中找到不同的值而创建的,所以这将是我在这里的第一次尝试。

select count(*)
from
(
select mykey from table1
intersect
select mykey from table2 where thematique = '1'
) intersection;

关于sql - 在 POSTGRESQL 中比较 2 个巨大表的更有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33262387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com