Re: [SQL] index on int2.

From: "Vladimir Dobrokhotov" <dvs(at)rybvod(dot)kamchatka(dot)su>
To: "Jackson, DeJuan" <djackson(at)cpsgroup(dot)com>, "pgsql-sql" <pgsql-sql(at)postgreSQL(dot)org>
Subject: Re: [SQL] index on int2.
Date: 1999-02-03 01:01:17
Message-ID: 01be4f10$b47cc760$9065a8c0@dvs.rybvod.kamchatka.su
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

>> I create index on int2 field, and it never used:
>>
>> create index xxx on ttt using btree(int2_field);
>> vacuum ttt; (2600 tuples)
>> explain select * from ttt where int2_field>1;
>> ... Seq Scan on ttt ...

>I don't think you got an answer for this yet so...
>
>Think of it this way... Is it cheaper to go the disk read in an index
>and relate those to the rows of the table concerned, then go and fetch
>each of the pages required to print out the results requested?
>The answer to that question depends on the percentage of table pages
>that will need to be loaded anyway. So, (wisely IMHO) Postgres say "Hey
>you're about to load in over 3/4 of this table why should I waste the
>seek time to load in the index as well when I mostly won't be using it.
>So I guess I'll just load em' all in, which with a good file system and
>caching is faster than seeking for the pages in index order, and just
>run your little int compare over those rows for ya."
>
>If you want to see if your index is being used try '=' instead of '>'.

I create table with 71160 rows, 12 fields (3 int2, 5 int4, 3 date,1 bool),
create indexes (btree and hash) on int2 field.
=>explain select * from tst4 where nom=4;
Seq Scan on tst4 (cost=3082.28 size=2 width=39)
=>select * from tst4 where nom=4;
... (104 rows)
=>explain select * from tst4 where nom<4;
Seq Scan on tst4 (cost=3082.28 size=23721 width=39)

I cannot see "Index Scan.." on int2 field...
I create same table(tst5), but index field as int4 and index used, select
work faster!
Need I use int4 instead int2? (I use values between 1 and 1800 only.)
"vacuum" not help anywhere.

Thanks.
Vladimir Dobrokhotov

P.S. interesting: file size:
tst4 (tst5): 6012928 (6627328)
hash index: 2564096 (same)
btree index: 1761280 (same)
(PostgreSQL 6.4.0 on freebsd 2.2.5)

Browse pgsql-sql by date

  From Date Subject
Next Message Bruce Momjian 1999-02-03 03:55:01 Re: [SQL] keeping OID's when copying table
Previous Message Michael Olivier 1999-02-03 00:42:27 keeping OID's when copying table