# Pastebin kRWEht2N listenbrainz_ts=> EXPLAIN SELECT listened_at, track_name, user_name, created, data, recording_mbid, release_mbid, artist_mbids listenbrainz_ts-> FROM listen listenbrainz_ts-> FULL OUTER JOIN listen_join_listen_mbid_mapping lj listenbrainz_ts-> ON (data->'track_metadata'->'additional_info'->>'recording_msid')::uuid = lj.recording_msid listenbrainz_ts-> FULL OUTER JOIN listen_mbid_mapping m listenbrainz_ts-> ON lj.listen_mbid_mapping = m.id listenbrainz_ts-> WHERE user_name IN ('rob') listenbrainz_ts-> AND listened_at > 1633867566 listenbrainz_ts-> AND listened_at < 1633967566 listenbrainz_ts-> ORDER BY listened_at listenbrainz_ts-> LIMIT 50; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit (cost=1.43..1647.26 rows=16 width=823) -> Nested Loop Left Join (cost=1.43..1647.26 rows=16 width=823) -> Nested Loop Left Join (cost=0.99..1640.01 rows=16 width=757) -> Custom Scan (ChunkAppend) on listen (cost=0.42..1595.29 rows=16 width=753) Order: listen.listened_at -> Index Scan Backward using _hyper_29_6373_chunk_listened_at_user_name_ndx_listen on _hyper_29_6373_chunk (cost=0.42..1595.29 rows=16 width=753) Index Cond: ((listened_at > 1633867566) AND (listened_at < 1633967566) AND (user_name = 'rob'::text)) -> Index Scan using recording_msid_ndx_listen_join_listen_mbid_mapping on listen_join_listen_mbid_mapping lj (cost=0.58..2.79 rows=1 width=20) Index Cond: (((((listen.data -> 'track_metadata'::text) -> 'additional_info'::text) ->> 'recording_msid'::text))::uuid = recording_msid) -> Index Scan using listen_mbid_mapping_pkey on listen_mbid_mapping m (cost=0.43..0.45 rows=1 width=74) Index Cond: (lj.listen_mbid_mapping = id) (11 rows) listenbrainz_ts=>