Re: Btree index on varchar - Mailing list pgsql-sql

From Tom Lane
Subject Re: Btree index on varchar
Date
Msg-id 18214.985364996@sss.pgh.pa.us
Whole thread Raw
In response to Btree index on varchar  (Alexaki Sofia <alexaki@ics.forth.gr>)
List pgsql-sql
Alexaki Sofia <alexaki@ics.forth.gr> writes:
> I have a question for Btree indexes on a varchar field.
> Does postgres (7.0.2) uses a special encoding when creating
> Btree indexes on varchar??

"Special encoding"?  No ... a varchar is a varchar.

> Is it much more efficient to create indexes  on integer than
> on strings with average length 30 chars??

It'd save some space and thereby save I/O time.  But I dunno about
"much" more efficient.  Figuring that there's a dozen or so bytes of
index-entry overhead in addition to the value itself, you might be
looking at a factor of 3 or so difference in index tuple size, hence
about a 3x savings in I/O for index scans; but that wouldn't translate
to anything like a factor of 3 for the total operation, since the number
of main-table tuples visited wouldn't change.  Try it and see, but I'd
guess that the net effect would be relatively small.

Really what you want to be asking yourself is which columns do you
need an index on for your query logic.  What datatype they are is a
minor consideration.
        regards, tom lane


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: creating "job numbers"
Next
From: Jie Liang
Date:
Subject: Re: drop table in PL/pgSQL