Advertisement
Alexey_Skadorva

Untitled

Dec 20th, 2020
547
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. select region from viewers_stats where created > now() - interval '1' month
  2.     group by region order by count(distinct account_id) desc limit 5;
  3.  
  4. Для оптимизации данного запроса стоит добавить составной index. В случае поисковых запросов разного типа к этой таблице, добавление данного индекса не имело бы большого смысла так как этот индекс заточен под конкретный запрос и запросы
  5.  такого типа
  6.  
  7. create index on public.test (region, account_id, created);
  8.  
  9. Так же для уменьшения размера таблицы имеет смысл вынести регионы в отдельную таблицу, а в таблице viewers_stats
  10. оставить ссылку на регион. В таком случае запрос бы имел следующий вид
  11.  
  12. with regions_stat as (select region_id from viewers_stats where created > now() - interval '1' month
  13.                  group by region order by count(distinct account_id) desc limit 5)
  14. select r.region from public.regions r, regions where r.id = regions_stat.region_id;
  15.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement