Thread: PQconnectStart/PQconnectPoll

PQconnectStart/PQconnectPoll

From
Sergio Mayoral
Date:
Hi,

i am running some tests to check performance between postgresql and mysql.

one important issue is PQconnectdb (PQconnectStart/PQconnectPoll) against mysql_init/mysql_real_connect functions. (debian platform/C application).

PQconnectdb("host=localhost dbname=my_db user=my_user password='' sslmode=disable"); 

co = mysql_init(NULL)
mysql_real_connect(co, "127.0.0.1", "my_user", "", "my_db", 0, NULL, 0)

PQconnectdb is taking too long comparing to mysql and i found out the time is consumed by PQconnectPoll waiting for the socket to be ready for reading/writing
but this behaviour is not seen in mysql.

I cannot use persistent connections. I must open/close a connection anytime I want to insert something new.

do i have to configure something different? Am i missing something?

this problem gets even worse under PHP.

Regards,

Re: PQconnectStart/PQconnectPoll

From
"Kevin Grittner"
Date:
Sergio Mayoral wrote:

> I cannot use persistent connections. I must open/close a connection
> anytime I want to insert something new.

That's odd. Why is that?

> do i have to configure something different? Am i missing something?

You could use pgbouncer to hold database connections open for you and
provide a somewhat more lightweight connection process.

-Kevin


Re: PQconnectStart/PQconnectPoll

From
Craig Ringer
Date:
On 11/15/2012 05:02 PM, Sergio Mayoral wrote:

PQconnectdb is taking too long comparing to mysql and i found out the time is consumed by PQconnectPoll waiting for the socket to be ready for reading/writing
What's "too long"?

I cannot use persistent connections. I must open/close a connection anytime I want to insert something new.
If you mean that you intend to open a new connection, do a single INSERT, and close the connection - your performance will be awful.

If your app can't use persistent or pooled connections, use PgBouncer as an external connection pool. Have your app connect to PgBouncer, and PgBouncer connect to PostgreSQL.


-- Craig Ringer                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services