gpt4 book ai didi

postgresql - 为什么这个查询会导致顺序扫描?

转载 作者:行者123 更新时间:2023-11-29 13:05:40 26 4
gpt4 key购买 nike

我是 PostgreSQL 的新手,如果我不清楚某些显而易见的事情,请原谅我。我有一个数据库,其中约 4.5 亿行分布在 6 个表中(每个表都有主键)。当我运行以下查询时:

SELECT * FROM "Payments" AS p
JOIN "PaymentOrders" AS po ON po."Id" = p."PaymentOrderId"
WHERE po."Id" = 1000

po."Id"是主键。我只是 VACUUM ANALYZED 整个数据库。可以查看EXPLAIN ANALYZE 详情 here 。 PaymentOrders 表包含 4000 万行,而 Payments 表包含 3.5 亿行。我在 Windows 8 机器上运行 x64 PostgreSQL 9.2,I5 CPU(4 核 3.3GHz),8GB 内存。你也可以看到我的 postgresql.conf 文件 here .

有人知道为什么这个查询会导致对 Payments 表进行顺序扫描吗?是我做错了什么还是 PostgreSQL 有一些严重的缺陷?我开始严重怀疑 PostgreSQL 查询规划器...

最佳答案

您是否索引了 FOREIGN KEY 关系的两边?特别是 Payments.PaymentOrderID 是否有索引?

关于postgresql - 为什么这个查询会导致顺序扫描?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13424650/

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