Advertisement
Alexey_Skadorva

Untitled

Dec 20th, 2020
715
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. create index on public.test (region, account_id, created);
  7.  
  8. -- Так же для уменьшения размера таблицы имеет смысл вынести регионы в отдельную таблицу, а в таблице viewers_stats
  9. -- оставить ссылку на регион. В таком случае запрос будет иметь следующий вид
  10.  
  11. with regions_stat as (select region_id from viewers_stats where created > now() - interval '1' month
  12.                  group by region order by count(distinct account_id) desc limit 5)
  13. select r.region from public.regions r, regions where r.id = regions_stat.region_id;
  14.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement