Thread: Analyze + Index

Analyze + Index

From
Rudi Starcevic
Date:
Hi,

Say I have a table of 3000 user's,
Before I insert another user I need to check if that user is already in 
there, so I have a 3 column index on a table ( phone,lastname,firstname ).

First I check for the user using the index if they are not in there I 
then add an new user so I now have 3001.
For my next user I then check again using the same procedure.

Is the following correct ?

As I have not yet Analyzed the db my index is still 3000 rows and my 
user table is 3001.
If I add another user my index is still 3000 and my table 3002.

So I either analyze after each insert or use a seqential scan.

I wonder this as I have a csv file of users to bulk insert each day.
Typically I'll have a file of 1500 or so  users to add or append data to.

Thanks.



Re: Analyze + Index

From
Rudi Starcevic
Date:
Hi,

I think I've found what I need to know.From techdocs.postgresql.org
>> Every you run an INSERT, UPDATE, or DELETE on an indexed table, 
PostgreSQL must update all of the table's indexes to reflect the new 
data (unlike some>> RDBMSs, PostgreSQL updates indexes immediately so they never get out 
of synch with the data). 

Thanks
Rudi.



Re: Analyze + Index

From
Richard Huxton
Date:
On Friday 29 Nov 2002 4:45 am, Rudi Starcevic wrote:
> Hi,
>
> I think I've found what I need to know.
>  From techdocs.postgresql.org
>
>  >> Every you run an INSERT, UPDATE, or DELETE on an indexed table,
>
> PostgreSQL must update all of the table's indexes to reflect the new
> data (unlike some
>
>  >> RDBMSs, PostgreSQL updates indexes immediately so they never get out
> of synch with the data).

Yep - the ANALYSE updates the statistics the planner uses. So - you should
analyse when a noticable portion of your data has changed. If you had 3000
users and batch inserted 1000 users you'd probably want to ANALYSE.

--  Richard Huxton