内部连接在具有50m和30k条目的桌子上



我有两个表A和B。A包含5000万个条目,B仅包含3万。我已经在加入表的列上创建了默认索引(B-Tree(。联接字段是类型character varying

我正在使用此查询查询数据库:

SELECT count(*)
from B INNER JOIN A
   ON B.id = A.id;

上述查询的执行时间约为8秒。当我看到执行计划时,计划者将对所有5000万个条目(大部分时间都需要(进行顺序扫描,并在表B。

上进行索引扫描

如何加快查询?

如果您想要确切的结果,则不能加快此查询。

最有效的加入策略可能是哈希或合并加入,具体取决于您的work_mem设置。

可能可以通过扫描索引来提高速度;在查询之前尝试VACUUM两个表。

唯一的调整方法是确保两个表都在RAM中缓存。

有一些方法可以获取估计计数,请参阅我的博客以获取详细信息。

相关内容

  • 没有找到相关文章

最新更新