У меня есть таблица красного смещения с 5 миллиардами строк, которая в ближайшем будущем будет расти. Когда я запускаю простой запрос select max(sort_key) from tbl
занимает 30 секунд.
У меня есть только один ключ сортировки в таблице.
В последнее время я столкнулся с проблемой вакуума и анализа.
Причина, по которой я беспокоюсь о 30 сек, я использую max (sort_key) несколько раз в моем подзапросе.
Есть ли что-нибудь, что мне не хватает?Выберите max (sort_key) из tbl_5billion_rows слишком долго.
Выход Объяснение выбрать максимум (sort_key) с TBL
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)
Выход Объяснение выбора sort_key от порядка TBL от SortKey предела по убыванию 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 для каждого значения ключа сортировки. –
Альтернативный запрос: «select sort_key order by sort_key desc limit 1;». Он может работать не быстрее. Можете ли вы добавить вывод «объяснять анализ select max (sort_key) из tbl;» на ваш вопрос? – kometen