# Pastebin dY9MKTJA acousticbrainz_big=> explain analyze SELECT * acousticbrainz_big-> FROM lowlevel acousticbrainz_big-> INNER JOIN musicbrainz.recording acousticbrainz_big-> ON musicbrainz.recording.gid = lowlevel.gid acousticbrainz_big-> LIMIT 10000; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------ Limit (cost=0.56..16519.67 rows=10000 width=141) (actual time=59.018..111034.443 rows=10000 loops=1) -> Nested Loop (cost=0.56..22316506.60 rows=13509513 width=141) (actual time=59.016..111024.272 rows=10000 loops=1) -> Seq Scan on lowlevel (cost=0.00..315222.13 rows=13509513 width=78) (actual time=15.833..33.990 rows=11068 loops=1) -> Index Scan using recording_idx_gid on recording (cost=0.56..1.63 rows=1 width=63) (actual time=10.020..10.020 rows=1 loops=11068) Index Cond: (gid = lowlevel.gid) Planning Time: 542.516 ms Execution Time: 111042.962 ms (7 rows) acousticbrainz_big=> explain analyze SELECT * acousticbrainz_big-> FROM lowlevel acousticbrainz_big-> WHERE EXISTS ( acousticbrainz_big(> SELECT musicbrainz.recording.gid acousticbrainz_big(> FROM musicbrainz.recording acousticbrainz_big(> WHERE musicbrainz.recording.gid = lowlevel.gid acousticbrainz_big(> ) acousticbrainz_big-> LIMIT 10000; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=0.56..16519.67 rows=10000 width=78) (actual time=0.055..33.723 rows=10000 loops=1) -> Nested Loop (cost=0.56..22316506.60 rows=13509513 width=78) (actual time=0.053..33.163 rows=10000 loops=1) -> Seq Scan on lowlevel (cost=0.00..315222.13 rows=13509513 width=78) (actual time=0.014..0.882 rows=11068 loops=1) -> Index Only Scan using recording_idx_gid on recording (cost=0.56..1.63 rows=1 width=16) (actual time=0.003..0.003 rows=1 loops=11068) Index Cond: (gid = lowlevel.gid) Heap Fetches: 10000 Planning Time: 0.651 ms Execution Time: 34.066 ms (8 rows)