Postgres

时间:2015-09-16 13:53:19

标签: mysql database multithreading postgresql concurrency

我们基本上是一个MySQL商店,我们熟悉MySQL的线程并发级别,它使用内部队列,这样即使有更多的连接/查询进入,I / O也会受到限制和控制。

同样不能适用于Postgres,因为它是多进程应用程序。现在问题,

如果有更多的连接数,比如2000个连接进来,所有查询是否会并行运行,即2000个进程将被生成并同时执行?如果是,那么当恶意查询进入并阻止其他查询时它会产生什么影响,它是如何在内部处理的?

postgres是否有一些类似于MySQL的内部可调参数?

如果有人指出我正确的方向,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

PostgreSQL架构基于UNIX进程 - 一个数据库会话(一个连接到数据库)意味着一个进程。如果你有1000个活跃的conects,那么有1000个PostgreSQL进程。 PostgreSQL by self不支持池化或类似的。但您可以使用第三方软件。还有更多变体 - 轻型pgbouncer,更复杂,更重pgpoolII。当您计划连接数比CPU核心高十倍时,此软件是必需的。如果您的专用服务器有很多非常短的查询,它也会有所帮助。