单个工作流程中的单数据库连接性能与多数据库连接性能

时间:2018-10-04 00:33:32

标签: performance database-design architecture database-connection software-design

对此需要一些软件体系结构见解。就资源(CPU,内存,数据库)而言,以下哪一项更有效?

  1. 一个流程中只有一个数据库连接? (只有在一切都完成后,包括业务逻辑,才能关闭连接)

  2. 一个流程中具有多个数据库连接? (执行查询后立即打开然后关闭数据库连接)

根据业务逻辑,可以根据业务规则对查询返回的数据进行清理或处理。

这里是可视化表示图。

更新:

编程语言:PHP(用于Web应用程序的Laravel,用于API的Lumen)

数据库:MySQL

主机:AWS

enter image description here

1 个答案:

答案 0 :(得分:0)

在运行时和数据库之间打开新连接需要操作系统创建新的套接字(如果运行时和数据库位于同一系统上,则此套接字可能是linux套接字,否则该套接字是tcp / udp套接字) 该套接字创建本身具有开销。 因此,我不建议在每次使用数据库后打开和关闭连接。 但您需要满足特定条件。 例如,您的数据库的并发连接数有限,并且使用此连接您有数千个长时间运行的进程,也许在这种情况下,您可以使用第二种方法。