Thread: the index on INTEGER field does not work (PG 7.1.2)

the index on INTEGER field does not work (PG 7.1.2)

From
"Alexandr S."
Date:
Bug: the index on INTEGER field does not work (PG 7.1.2).

Test 1:

1) create table test_int(id int primary key);

2) insert 10000 records in table test_int with perl program (values
1,2,3,...,10000).

3) 500 times execute query

   SELECT * FROM test_int WHERE id = random number

   (random number puts with perl program)

4) 500 queries executes for 30 seconds

Test 2:

1) create table test_int1(id int); (i.e. without primary key)

2) insert 10000 records in table test_int1 with perl program (values
1,2,3,...,10000).

3) 500 times execute query

   SELECT * FROM test_int1 WHERE id = random number

   (random number puts with perl program)

4) 500 queries executes for 30 seconds too  :~-( ...


P.S. For TEXT field the same operations executes for 30 and 1 seconds
correspondingly.

Re: the index on INTEGER field does not work (PG 7.1.2)

From
Andrew Snow
Date:
Please see FAQ 4.9


http://postgresql.bteg.net/docs/faq-english.html#4.9



On Fri, 15 Jun 2001, Alexandr S. wrote:

>
> Bug: the index on INTEGER field does not work (PG 7.1.2).
>
> Test 1:
>
> 1) create table test_int(id int primary key);
>
> 2) insert 10000 records in table test_int with perl program (values
> 1,2,3,...,10000).
>
> 3) 500 times execute query
>
>    SELECT * FROM test_int WHERE id = random number
>
>    (random number puts with perl program)
>
> 4) 500 queries executes for 30 seconds
>
> Test 2:
>
> 1) create table test_int1(id int); (i.e. without primary key)
>
> 2) insert 10000 records in table test_int1 with perl program (values
> 1,2,3,...,10000).
>
> 3) 500 times execute query
>
>    SELECT * FROM test_int1 WHERE id = random number
>
>    (random number puts with perl program)
>
> 4) 500 queries executes for 30 seconds too  :~-( ...
>
>
> P.S. For TEXT field the same operations executes for 30 and 1 seconds
> correspondingly.
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>

Re: the index on INTEGER field does not work (PG 7.1.2)

From
Tom Lane
Date:
Andrew Snow <andrew@modulus.org> writes:
> Please see FAQ 4.9

While that's a good answer in general, the default statistics are set up
(with malice aforethought) to give index scans.

regression=# create table test_int(id int primary key);
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'test_int_pkey' for table 'test_int'
CREATE
regression=# explain SELECT * FROM test_int WHERE id = 33;
NOTICE:  QUERY PLAN:

Index Scan using test_int_pkey on test_int  (cost=0.00..8.14 rows=10 width=4)

EXPLAIN

So I'm not sure what's going on here.  Alexandr, what do you get from
EXPLAIN for your queries?

            regards, tom lane