Postgresql 查询性能慢

Postgresql slow query performance

提问人:Siddharth 提问时间:4/17/2023 最后编辑:Siddharth 更新时间:4/17/2023 访问量:55

问:

我正在处理的一个 Postgres 表有 3 亿行。我正在尝试根据可能值为“Complete”、“In_Progress”或“New”的列 (status_code) 从该表中选择行。

选择查询 where 子句:status_code != 'Complete'。此查询运行时间超过 20 分钟。我不确定在“status_code”列的此表上创建索引是否有帮助,或者会进一步降低性能。

此外,我正在考虑在这种情况下,基于status_code创建分区表是否比索引更好。

我为 Select 查询运行了 EXPLAIN ANALYZE:

解释分析 选择name_key 与role_player_name相比 其中 status_code != 'Complete'

结果: role_player_name上的顺序扫描(成本=0.00..13696237.01,行=238537921宽度=34)

(实际时间=0.096..348576.907 行=239484245循环=1)

筛选器:((status_code)::text <> 'COMPLETED'::text)

规划时间:0.792 ms

执行时间:358239.975 ms

期待一些建议。

问候

PostgreSQL SQL postgresql-性能

评论

2赞 Frank Heikens 4/17/2023
您能否分享慢速查询的解释(分析、详细、缓冲区)和所涉及的表和索引的 ddl 的结果?(全部为纯文本)
0赞 vicki 4/17/2023
如果没有解释(分析),我们就无法找出是什么在减慢查询速度。请分享解释(分析)的输出。
0赞 Siddharth 4/17/2023
更新了EXPLAIN ANALYZE结果,谢谢

答: 暂无答案