Re: [SQL] index on int2.
От | Vladimir Dobrokhotov |
---|---|
Тема | Re: [SQL] index on int2. |
Дата | |
Msg-id | 01be4f10$b47cc760$9065a8c0@dvs.rybvod.kamchatka.su обсуждение исходный текст |
Список | 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)
В списке pgsql-sql по дате отправления: