0
我有50億行的紅移表,它將在未來增長很多。當我運行一個簡單的查詢select max(sort_key) from tbl
它需要30秒。
我只有一個排序鍵在表中。
我最近在桌子上運行真空和分析。
我擔心30秒的原因是,我在我的子查詢中多次使用max(sort_key)。
有什麼我失蹤?從tbl_50billion_rows選擇max(sort_key)需要太長的時間
輸出從TBL解釋選擇最大值(sort_key)
XN Aggregate (cost=55516326.40..55516326.40 rows=1 width=4)
-> XN Seq Scan on tbl (cost=0.00..44413061.12 rows=4441306112 width=4)
輸出通過SORTKEY DESC LIMIT 1
XN Limit (cost=1000756095433.11..1000756095433.11 rows=1 width=4)
-> XN Merge (cost=1000756095433.11..1000767198698.39 rows=4441306112 width=4)
Merge Key: sort_key
-> XN Network (cost=1000756095433.11..1000767198698.39 rows=4441306112 width=4)
Send to leader
-> XN Sort (cost=1000756095433.11..1000767198698.39 rows=4441306112 width=4)
Sort Key: sort_key
-> XN Seq Scan on tbl (cost=0.00..44413061.12 rows=4441306112 width=4)
是否有多個具有相同值的行(sort_keys)? – kometen
對於排序鍵的每個值,@ kometen可能爲1000。 –
另一個查詢是「按sort_key desc limit 1選擇sort_key order」。它可能跑得不快。你可以添加「解析分析select max(sort_key)從tbl的輸出;」你的問題? – kometen