Обсуждение: PQconnectStart/PQconnectPoll

Поиск
Список
Период
Сортировка

PQconnectStart/PQconnectPoll

От
Sergio Mayoral
Дата:
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

От
"Kevin Grittner"
Дата:
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

От
Craig Ringer
Дата:
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