2014-01-29 19 views
1

В Postgres существует ограничение на выполнение только одного исполняемого запроса на соединение (и другие запросы в соединении ждут завершения первого, прежде чем они начнутся)? Я думаю, что я вижу это в одном драйвере, поэтому я хочу быть уверенным, что это поведение db, а не конкретное ограничение драйвера.Postgres: одновременные запросы в соединении

+0

Вы ищете нечто вроде [блокировки] (http://www.postgresql.org/docs/9.1/static/explicit-locking.html)? – Houari

+0

Нет, я просто хочу понять, как все работает ... и то, что я получаю и теряю, используя одно и несколько соединений –

+5

Один запрос на соединение. Вам не нужно блокировать клиента, ожидая его, хотя: http://www.postgresql.org/docs/current/static/libpq-async.html –

ответ

4

В Postgres существует ограничение, имеющий только один выполняющийся запрос на соединение

Да. PostgreSQL не позволяет приостанавливать и возобновлять транзакции, а также не поддерживает фоновые (асинхронные) запросы на сервере.

Вы все еще можете запускать несколько одновременных запросов, вам просто нужно одно соединение для каждого параллельного запроса. Вы можете использовать потоки (один поток для каждого соединения), но обычно лучше использовать асинхронные интерфейсы запросов в вашей клиентской библиотеке.

Не зная, чего вы пытаетесь достичь, и какой язык программирования (и, следовательно, какая клиентская библиотека) вы используете, сложно предложить более подробные рекомендации.

Смежные вопросы