Mysql Postgres的并发参数

Mysql Postgres的并发参数,mysql,database,multithreading,postgresql,concurrency,Mysql,Database,Multithreading,Postgresql,Concurrency,我们基本上是一家MySQL商店,我们熟悉MySQL的线程并发级别,它使用一个内部队列,这样即使有更多的连接/查询进入,I/O也会受到限制和控制 同样的情况也不适用于博士后,因为它是多过程应用。现在问题 如果有更多的连接,比如说2000个连接进来,那么所有的查询都会并行运行吗?也就是说,2000个进程将同时产生并执行?如果是,那么当一个恶意查询进入并阻止其他查询时,它的含义是什么,它在内部是如何处理的 postgres是否有一些类似于MySQL的内部可调参数 如果人们能给我指出正确的方向,我将不胜

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

同样的情况也不适用于博士后,因为它是多过程应用。现在问题

如果有更多的连接,比如说2000个连接进来,那么所有的查询都会并行运行吗?也就是说,2000个进程将同时产生并执行?如果是,那么当一个恶意查询进入并阻止其他查询时,它的含义是什么,它在内部是如何处理的

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


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

PostgreSQL体系结构基于UNIX进程——一个数据库会话(一个连接到数据库)意味着一个进程。如果您有1000个活动连接,那么就有1000个PostgreSQL进程。PostgreSQL本身不支持池或类似功能。但是你可以使用第三方软件。有更多的变体-轻,更复杂和更重。当您计划连接数是CPU核心数的十倍时,此软件是必需的。如果你有一个专门的服务器,有很多很短的查询,这也会有帮助。

谢谢你的回答。现在我知道没有可以设置的并发参数,可以安全地假设postgres默认情况下会使用所有的核心并自动排队处理所有的请求吗?postgres不计算核心的数量。它不使用任何队列。它使用进程-而进程的控制是操作系统的任务。因此,如果当前正在使用所有内核,并且不断有更多查询进入,根据我的理解,现在每个内核有1个查询,那么挂起的查询是否会被操作系统排成队列,还是会失败。我知道最大连接数,但是我更关心的是这里的查询计数。希望我没有把你弄糊涂。不:)操作系统可以运行比CPU核更多的进程。CPU时间在所有进程之间共享。没有任何队列。所有PostgreSQL进程都以相同的优先级并行执行。