提问人:Siddharth 提问时间:4/17/2023 最后编辑:Siddharth 更新时间:4/17/2023 访问量:55
Postgresql 查询性能慢
Postgresql slow query performance
问:
我正在处理的一个 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
期待一些建议。
问候
答: 暂无答案
评论