Re: Why are selects so slow on large tables, even when

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Robert Wille <robert(dot)wille(at)iarchives(dot)com>
Cc: <pgsql-general(at)postgresql(dot)org>, Russell Black <russell(dot)black(at)iarchives(dot)com>
Subject: Re: Why are selects so slow on large tables, even when
Date: 2002-04-02 19:08:54
Message-ID: 20020402110616.A45276-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On Tue, 26 Mar 2002, Robert Wille wrote:

> To test PostgreSQL's scalability, I created a table with approximately
> 76M rows. The table had four columns: a bigint, a varchar(32), another
> bigint and a varchar(80). The first three columns were filled with
> values, the fourth was left null. After populating the table, I
> created an index on the first column (a non-unique index, as the
> column contains duplicate values) and then VACUUMed. Select statements
> involving only the indexed column are pathetically slow (tens of
> minutes). Some examples:
>
> select count(*) from a where id < 0; /* returns 0 rows */
> select * from a where id=5; /* returns a handful of rows */
>
> 76M rows is a lot, but it shouldn't be that bad when id is indexed.
>
> Attached are two scripts. One creates the table, the other populates
> it. I typed "create index index_a on a(id)" and "vacuum" by hand. I
> see this behavior both on Windows and RedHat Linux using PostgreSQL
> version 7.1.3 in both cases. Any idea why the performance is so poor?
> Can this be corrected by tuning?

If you did just a vacuum and not a vacuum analyze, you should go back and
do so to make sure the statistics are updated.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message PG Explorer 2002-04-02 19:23:19 Re: Creating temporary table
Previous Message Devrim GUNDUZ 2002-04-02 19:06:51 Re: changeing type of column