Не до конца понимаю, может ли Postgres обрабатывать, например, 2 запроса одновременно? То есть, если мы из пула взяли 2 коннекшена и одновременно обратимся к бд, будут ли они обработаны одновременно? И если, допустим, один из коннекшенов будет выполнять запрос очень долго (скажем, 10 секунд), то второй коннекшен с простым запросом сможет выполниться параллельно? И, если это так, то сколько всего запросов может выполняться параллельно? От чего это зависит?
От транзакционности и наличия кластера. Транзакции выполняются всегда последовательно, а любые другие запросы - параллельно. У распределённого кластера есть свои особенности
Иван Шумов, попробуйте для ознакомления
Transactional Information Systems Theory, Algorithms, and the Practice of Concurrency Control and Recovery авторства Gerhard Weikum и Gottfried Vossen
Если кратко - вы ошибаетесь. Полностью.
Транзакции выполняются всегда последовательно, а любые другие запросы - параллельно.
Ни один SELECT не может быть выполнен вне транзакции в postgresql. Ваш ход?
Сергей Горностаев, ну все-таки ошибка сериализации при коммите не равно последовательному исполнению.
Кроме того, даже в описанном вами случае они могут выполняться одновременно (там, кстати, смешная багофича pg описана), если они не трогают одни и те же строки таблицы.