Thread: Some questions about Postgres

Some questions about Postgres

From
Siddharth Jain
Date:
Hi all,

I am new to Postgres. I read an old article comparing MySQL to Postgres and wanted to get answers to following questions. All questions are w.r.t. Postgres 14:

- do postgres secondary indexes point directly to tuples on disk?
- does postgres use a separate process for each connection?
- does postgres use any application cache similar to innodb_buffer_pool?

Thanks a lot. If you can provide references to documentation, that would be great.

Re: Some questions about Postgres

From
Christophe Pettus
Date:

> On Nov 3, 2022, at 10:38, Siddharth Jain <siddhsql@gmail.com> wrote:
> I read an old article comparing MySQL to Postgres and wanted to get answers to following questions.

Given your questions, I suspect that you read the technical note from Uber about why they switched back to MySQL from
PostgreSQL. There are quite a few responses out there to it, including: 

    https://thebuild.com/presentations/uber-perconalive-2017.pdf

To answer the specific questions:

1. Yes, all PostgreSQL indexes point directly to tuples on disk.  They do not point to a primary key (which a table
mightnot even have). 

2. Yes, each backend connection to PostgreSQL is a separate process.  The usual way of mitigating any performance
issuesthis might introduce is to use a pooler such as pgbouncer. 

3. This is equivalent to PostgreSQL's shared buffers.


Re: Some questions about Postgres

From
Siddharth Jain
Date:
Thanks Christophe. Yes that is the article and I read the response as well.

On Thu, Nov 3, 2022 at 10:42 AM Christophe Pettus <xof@thebuild.com> wrote:


> On Nov 3, 2022, at 10:38, Siddharth Jain <siddhsql@gmail.com> wrote:
> I read an old article comparing MySQL to Postgres and wanted to get answers to following questions.

Given your questions, I suspect that you read the technical note from Uber about why they switched back to MySQL from PostgreSQL.  There are quite a few responses out there to it, including:

        https://thebuild.com/presentations/uber-perconalive-2017.pdf

To answer the specific questions:

1. Yes, all PostgreSQL indexes point directly to tuples on disk.  They do not point to a primary key (which a table might not even have).

2. Yes, each backend connection to PostgreSQL is a separate process.  The usual way of mitigating any performance issues this might introduce is to use a pooler such as pgbouncer.

3. This is equivalent to PostgreSQL's shared buffers.

Re: Some questions about Postgres

From
Laurenz Albe
Date:
On Thu, 2022-11-03 at 10:42 -0700, Christophe Pettus wrote:
> > On Nov 3, 2022, at 10:38, Siddharth Jain <siddhsql@gmail.com> wrote:
> > I read an old article comparing MySQL to Postgres and wanted to get answers to following questions. 
> 
> Given your questions, I suspect that you read the technical note from Uber about why they switched back
> to MySQL from PostgreSQL.  There are quite a few responses out there to it, including:
> 
>         https://thebuild.com/presentations/uber-perconalive-2017.pdf

This is also insightful: https://use-the-index-luke.com/blog/2016-07-29/on-ubers-choice-of-databases

Yours,
Laurenz Albe



Re: Some questions about Postgres

From
Siddharth Jain
Date:
Thanks Laurenz.

On Fri, Nov 4, 2022 at 1:55 AM Laurenz Albe <laurenz.albe@cybertec.at> wrote:
On Thu, 2022-11-03 at 10:42 -0700, Christophe Pettus wrote:
> > On Nov 3, 2022, at 10:38, Siddharth Jain <siddhsql@gmail.com> wrote:
> > I read an old article comparing MySQL to Postgres and wanted to get answers to following questions.
>
> Given your questions, I suspect that you read the technical note from Uber about why they switched back
> to MySQL from PostgreSQL.  There are quite a few responses out there to it, including:
>
>         https://thebuild.com/presentations/uber-perconalive-2017.pdf

This is also insightful: https://use-the-index-luke.com/blog/2016-07-29/on-ubers-choice-of-databases

Yours,
Laurenz Albe