explain.depesz.com

PostgreSQL's explain analyze made readable

Result: EgkF : Test

Settings
# exclusive inclusive rows x rows loops node
1. 186.154 13,751.008 ↓ 1.1 18,309 1

HashAggregate (cost=168,398.82..168,562.66 rows=16,384 width=16) (actual time=13,743.945..13,751.008 rows=18,309 loops=1)

  • Group Key: image_id
2. 13,419.320 13,564.854 ↑ 1.3 304,908 1

Bitmap Heap Scan on page_matches (cost=4,525.15..166,458.38 rows=388,089 width=8) (actual time=156.948..13,564.854 rows=304,908 loops=1)

  • Recheck Cond: ((domain IS NULL) OR ((domain)::text ~~ ANY ('{%.fi}'::text[])))
  • Rows Removed by Index Recheck: 1911
  • Filter: (((organisation_id = 8) AND (rematched IS NULL) AND (domain IS NULL)) OR ((domain)::text ~~ ANY ('{%.fi}'::text[])))
  • Heap Blocks: exact=43370
3. 0.002 145.534 ↓ 0.0 0 1

BitmapOr (cost=4,525.15..4,525.15 rows=388,089 width=0) (actual time=145.534..145.534 rows=0 loops=1)

4. 0.782 0.782 ↓ 0.0 0 1

Bitmap Index Scan on page_matches_domain (cost=0.00..4.44 rows=1 width=0) (actual time=0.782..0.782 rows=0 loops=1)

  • Index Cond: (domain IS NULL)
5. 144.750 144.750 ↑ 1.3 307,058 1

Bitmap Index Scan on page_matches_domain_gin_trgm_idx (cost=0.00..4,326.67 rows=388,089 width=0) (actual time=144.750..144.750 rows=307,058 loops=1)

  • Index Cond: ((domain)::text ~~ ANY ('{%.fi}'::text[]))