site_id = 26 and ctime > '2020-05-12 00:00';
sum
---------
9782864
9 мегабайт за 40 секунд :(
Подождите, почему Вы решили, что проблема именно в "регулярке"? Вот же в плане: -> ProjectSet (cost=0.42..51503.44 rows=1369250 width=32) (actual time=66.817..32609.585 rows=83170 loops=1) Output: regexp_matches((u26_2020_20.local_url)::text, '(utm_[^=]+)=([^&]+)'::text, 'g'::text) Buffers: shared hit=286786 read=1953 dirtied=26 -> Index Scan using u26_2020_20_ctime_idx on parts.u26_2020_20 (cost=0.42..43630.25 rows=136925 width=61) (actual time=63.058..27394.247 rows=21231 loops=1) Output: u26_2020_20.local_url Index Cond: (u26_2020_20.ctime > '2020-05-12 00:00:00+00'::timestamp with time zone) Filter: ((u26_2020_20.site_id = 26) AND (utm_json((u26_2020_20.local_url)::text) IS NOT NULL)) Rows Removed by Filter: 118683 Buffers: shared hit=286786 read=1953 dirtied=26 Т.е. actual time = 27394.247 на index scan, и (32609.585 - 27394.247) = 5215.338 после того (это, грубо, то, что уходит на "регулярку")... нет?
Обсуждают сегодня