0

我有两台 RDS 服务器用于生产和 QA。
我已经转储了生产数据库并将其导入到 QA 数据库中。
因为它是完全相同的数据,一个几乎相同的硬件,我希望查询执行类似。但是,导入的 (QA) 数据库似乎行为不端,对大多数查询使用顺序扫描而不是索引(就像生产服务器那样)。
我试图重建索引,但徒劳无功,postgresql planner 坚持使用 seq 扫描而不是索引扫描。

断定使用seq扫描的sql是这样的:

SELECT "emails".* FROM "emails" WHERE "emails"."emailable_type" = 'Type1' AND "emails"."emailable_id" IN (4410398, {many others},137191)

现在,由于 postgresql 没有提示,我无法查看索引是否运行良好。所以问题是,是什么让 postgresql 优化器在生产数据库中产生一个解释计划,而在导入的 QA 中产生另一个解释计划?

4

0 回答 0