Why primary key index are not using in joining? - Mailing list pgsql-performance

From AI Rumman
Subject Why primary key index are not using in joining?
Date
Msg-id 2a7905441002150135x1ba61b19p89f3c3b94d252843@mail.gmail.com
Whole thread Raw
Responses Re: Why primary key index are not using in joining?
Re: Why primary key index are not using in joining?
List pgsql-performance


Please have a look at the following explain plan:


explain analyze
select *
from vtiger_crmentity
inner JOIN vtiger_users
         ON vtiger_users.id = vtiger_crmentity.smownerid
where vtiger_crmentity.deleted = 0  ;
                                                                         QUERY PLAN                                                                        
------------------------------------------------------------------------------------------------------------------------------------------------------------
 Hash Join  (cost=3665.17..40019.25 rows=640439 width=1603) (actual time=115.613..3288.436 rows=638081 loops=1)
   Hash Cond: ("outer".smownerid = "inner".id)
   ->  Bitmap Heap Scan on vtiger_crmentity  (cost=3646.54..30394.02 rows=640439 width=258) (actual time=114.763..986.504 rows=638318 loops=1)
         Recheck Cond: (deleted = 0)
         ->  Bitmap Index Scan on vtiger_crmentity_deleted_idx  (cost=0.00..3646.54 rows=640439 width=0) (actual time=107.851..107.851 rows=638318 loops=1)
               Index Cond: (deleted = 0)
   ->  Hash  (cost=18.11..18.11 rows=211 width=1345) (actual time=0.823..0.823 rows=211 loops=1)
         ->  Seq Scan on vtiger_users  (cost=0.00..18.11 rows=211 width=1345) (actual time=0.005..0.496 rows=211 loops=1)
 Total runtime: 3869.022 ms


Sequential index is occuring on vtiger_users table while it has primary key index on id.
Could anyone please tell me why?

 

 \d vtiger_users
                                                           Table "public.vtiger_users"
       Column        |            Type             |                                          Modifiers                                          
---------------------+-----------------------------+----------------------------------------------------------------------------------------------
 id                  | integer                     | not null default nextval('vtiger_users_seq'::regclass)
 user_name           | character varying(255)      |
 user_password       | character varying(30)       |
 user_hash           | character varying(32)       |
 ...

Indexes:
    "vtiger_users_pkey" PRIMARY KEY, btree (id)
    "user_user_name_idx" btree (user_name)
    "user_user_password_idx" btree (user_password)
    "vtiger_users_user_name_lo_idx" btree (lower(user_name::text) varchar_pattern_ops)


 \d vtiger_crmentity
                 Table "public.vtiger_crmentity"
    Column    |            Type             |     Modifiers     
--------------+-----------------------------+--------------------
 crmid        | integer                     | not null
 smcreatorid  | integer                     | not null default 0
 smownerid    | integer                     | not null default 0
 modifiedby   | integer                     | not null default 0
 setype       | character varying(30)       | not null
 description  | text                        |
 createdtime  | timestamp without time zone | not null
 modifiedtime | timestamp without time zone | not null
 viewedtime   | timestamp without time zone |
 status       | character varying(50)       |
 version      | integer                     | not null default 0
 presence     | integer                     | default 1
 deleted      | integer                     | not null default 0
Indexes:
    "vtiger_crmentity_pkey" PRIMARY KEY, btree (crmid)
    "crmentity_deleted_smownerid_idx" btree (deleted, smownerid)
    "crmentity_modifiedby_idx" btree (modifiedby)
    "crmentity_smcreatorid_idx" btree (smcreatorid)
    "crmentity_smownerid_deleted_idx" btree (smownerid, deleted)
    "crmentity_smownerid_idx" btree (smownerid)
    "vtiger_crmentity_deleted_idx" btree (deleted)

pgsql-performance by date:

Previous
From: Boszormenyi Zoltan
Date:
Subject: Re: PostgreSQL on SMP Architectures
Next
From: Scott Marlowe
Date:
Subject: Re: Why primary key index are not using in joining?