Jake Stride wrote:
Hi,
I have a table set up:
\d companycontactmethod
Table "public.companycontactmethod"
Column | Type | Modifiers
-----------+-------------------+------------------------
tag | character varying | not null
contact | character varying | not null
type | character(1) | not null
companyid | bigint | not null
name | character varying | not null
main | boolean | not null default false
billing | boolean | not null default false
shipping | boolean | not null default false
payment | boolean | not null default false
technical | boolean | not null default false
Indexes:
"companycontactmethod_pkey" PRIMARY KEY, btree (companyid, name, "type")
"companycontactmethod_companyid" btree (companyid)
"companycontactmethod_main_type" btree (main, "type")
Foreign-key constraints:
"$1" FOREIGN KEY (companyid) REFERENCES company(id) ON UPDATE
CASCADE ON DELETE CASCADE
and am running the following:
explain analyse SELECT companycontactmethod.tag,
companycontactmethod.contact, companycontactmethod."type",
companycontactmethod.companyid FROM companycontactmethod WHERE
companycontactmethod.main AND companycontactmethod.type = 'E';
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------
Seq Scan on companycontactmethod (cost=0.00..181.10 rows=2079
width=40) (actual time=0.027..17.068 rows=2134 loops=1)
Filter: (main AND ("type" = 'E'::bpchar))
Total runtime: 25.965 ms
why is it not using the companycontactmethod_main_type index on the
query? Am I missing something obvious here?
Thanks
Jake
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match
The index is of no use when you specify no value for main. You want any
row that has any value for main, and a value of 'E' for type. Because
you haven't specified a value for 'main' the only solution is to scan
the entire set.
Pete
--
Peter Wilson, YellowHawk Ltd, http://www.yellowhawk.co.uk
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match