All pastes #801845 Raw Edit

Mine

public text v1 · immutable
#801845 ·published 2007-11-29 17:13 UTC
rendered paste body
musicbrainz=> \d artist;
                                       Table "public.artist"
     Column      |          Type          |                       Modifiers
-----------------+------------------------+--------------------------------------------------------
 id              | integer                | not null default nextval('public.artist_id_seq'::text)
 name            | character varying(255) | not null
 gid             | character(36)          | not null
 modpending      | integer                | default 0
 sortname        | character varying(255) | not null
 page            | integer                | not null
 resolution      | character varying(64)  |
 begindate       | character(10)          |
 enddate         | character(10)          |
 type            | smallint               |
 quality         | smallint               | default -1
 modpending_qual | integer                | default 0
Indexes:
    "artist_pkey" PRIMARY KEY, btree (id)
    "artist_gidindex" UNIQUE, btree (gid)
    "artist_lower" btree (lower(name::text))
    "artist_nameindex" btree (name)
    "artist_pageindex" btree (page)
    "artist_sortnameindex" btree (sortname)

musicbrainz=> \d track;
                                    Table "public.track"
   Column   |          Type          |                       Modifiers
------------+------------------------+-------------------------------------------------------
 id         | integer                | not null default nextval('public.track_id_seq'::text)
 artist     | integer                | not null
 name       | character varying(255) | not null
 gid        | character(36)          | not null
 length     | integer                | default 0
 year       | integer                | default 0
 modpending | integer                | default 0
Indexes:
    "track_pkey" PRIMARY KEY, btree (id)
    "track_gidindex" UNIQUE, btree (gid)
    "track_artistindex" btree (artist)
    "track_length" btree (length)
    "track_lower" btree (lower(name::text))
    "track_nameindex" btree (name)

EXPLAIN             SELECT
                            artist.id,
                            artist.name         AS artist,
                            artist.gid          AS artist_gid,
                            track.artist        AS track_artist
                    FROM
                        artist
                    INNER JOIN track ON track.artist = artist.id
                    WHERE lower(artist.name) = 'beck'

QUERY PLAN
Hash Join  (cost=5687.20..211232.46 rows=29520 width=66)
  Hash Cond: ("outer".artist = "inner".id)
  ->  Seq Scan on track  (cost=0.00..146238.03 rows=5901203 width=4)
  ->  Hash  (cost=5683.20..5683.20 rows=1600 width=62)
        ->  Index Scan using artist_lower on artist  (cost=0.00..5683.20 rows=1600 width=62)
              Index Cond: (lower((name)::text) = 'beck'::text)
6 rij(en)
Total runtime: 7.324 ms


EXPLAIN             SELECT
                            artist.id,
                            artist.name         AS artist,
                            artist.gid          AS artist_gid,
                            track.artist        AS track_artist
                    FROM
                        artist
                    LEFT JOIN track ON track.artist = artist.id
                    WHERE lower(artist.name) = 'beck'


QUERY PLAN
Merge Left Join  (cost=1156952.71..1186761.93 rows=29520 width=66)
  Merge Cond: ("outer".id = "inner".artist)
  ->  Sort  (cost=5768.35..5772.35 rows=1600 width=62)
        Sort Key: artist.id
        ->  Index Scan using artist_lower on artist  (cost=0.00..5683.20 rows=1600 width=62)
              Index Cond: (lower((name)::text) = 'beck'::text)
  ->  Sort  (cost=1151184.36..1165937.37 rows=5901203 width=4)
        Sort Key: track.artist
        ->  Seq Scan on track  (cost=0.00..146238.03 rows=5901203 width=4)
9 rij(en)
Total runtime: 7.325 ms