Skip site navigation (1) Skip section navigation (2)

Re: Slow select, insert, update

From: Litao Wu <litaowu(at)yahoo(dot)com>
To: Doug McNaught <doug(at)mcnaught(dot)org>,pgsql-performance(at)postgresql(dot)org
Subject: Re: Slow select, insert, update
Date: 2004-08-10 21:44:00
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-performance
Does that mean reindex is not needed
for PG version 7.4?

In what kind situations under PG 7.4, 
reindex is worthwhile?


Here is doc from 7.3:
PostgreSQL is unable to reuse B-tree index pages in
certain cases. The problem is that if indexed rows are
deleted, those index pages can only be reused by rows
with similar values. For example, if indexed rows are
deleted and newly inserted/updated rows have much
higher values, the new rows can't use the index space
made available by the deleted rows. Instead, such new
rows must be placed on new index pages. In such cases,
disk space used by the index will grow indefinitely,
even if VACUUM is run frequently. 

As a solution, you can use the REINDEX command
periodically to discard pages used by deleted rows.
There is also contrib/reindexdb which can reindex an
entire database. 

The counterpart of 7.4 is:
In some situations it is worthwhile to rebuild indexes
periodically with the REINDEX command. (There is also
contrib/reindexdb which can reindex an entire
database.) However, PostgreSQL 7.4 has substantially
reduced the need for this activity compared to earlier

--- Doug McNaught <doug(at)mcnaught(dot)org> wrote:

> Paul Langard <pjl(at)intercellsolutions(dot)com> writes:
> > Having trouble with one table (see time to count
> records below!).
> >
> > Fairly new to postgres so any help much
> appreciated.
> >
> > It only contains 9,106 records - as you can see
> from:
> >
> >
> > select count(id) from project
> >
> > count
> > 9106
> > 1 row(s)
> > Total runtime: 45,778.813 ms
> > ... the database is regularly vaccuumed.
> Hmm.  You might try a VACUUM FULL and a REINDEX on
> the table (you
> don't say what version you are running--REINDEX is
> sometimes needed on
> 7.3 and below).
> Also, use EXPLAIN ANALYZE on your query and post the
> result--that's
> helpful diagnostic information.
> -Doug
> -- 
> Let us cross over the river, and rest under the
> shade of the trees.
>    --T. J. Jackson, 1863
> ---------------------------(end of
> broadcast)---------------------------
> TIP 8: explain analyze is your friend

Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard. 

In response to

pgsql-performance by date

Next:From: Rudi StarcevicDate: 2004-08-10 23:04:02
Subject: Bulk Insert and Index use
Previous:From: Doug McNaughtDate: 2004-08-10 20:48:01
Subject: Re: Slow select, insert, update

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group