Thread: Postgres Internals

Postgres Internals

From
Dip
Date:
Hi All,

Im running some benchmarking tests on mysql, postgres and interbase
database servers.

does anyone know the reasons why or know where i can find out some
technical reasons why the postgres database server is particularly good
in relation to the others or just by itself e.g. use of query
optimisation or indexing etc. I'm only looking at creates, selects,
inserts, update and delete statements. I've noticed it is slow at
inserting data into tables, but especially quick at doing complex
selects (i.e. containing many joins). Why is this so?

I've tried to look around for this on the net, but all i seem to get is
a big arguement consisting of the features lacking in mysql that are in
other databases e.g. ACID!!

Thanks,

Dipesh




Re: Postgres Internals

From
Joseph Shraibman
Date:
Dip wrote:
>
> Hi All,
>
> Im running some benchmarking tests on mysql, postgres and interbase
> database servers.
>
> does anyone know the reasons why or know where i can find out some
> technical reasons why the postgres database server is particularly good
> in relation to the others or just by itself e.g. use of query
> optimisation or indexing etc. I'm only looking at creates, selects,
> inserts, update and delete statements. I've noticed it is slow at
> inserting data into tables, but especially quick at doing complex
> selects (i.e. containing many joins). Why is this so?

I suspect because on an UPDATE postgres creates a new tuple and lets the
old one become invalid.  It does this to keep the old tuple around
because a transaction that started before the update is supposed to see
the old tuple not the old one.  Because a new tuple is created it has to
be inserted into all the indicies.  If another database just has one
tuple and overwrites it it doesn't have to update the index.




--
Joseph Shraibman
jks@selectacast.net
Increase signal to noise ratio.  http://www.targabot.com