对此需要一些软件体系结构见解。就资源(CPU,内存,数据库)而言,以下哪一项更有效?
一个流程中只有一个数据库连接? (只有在一切都完成后,包括业务逻辑,才能关闭连接)
一个流程中具有多个数据库连接? (执行查询后立即打开然后关闭数据库连接)
根据业务逻辑,可以根据业务规则对查询返回的数据进行清理或处理。
这里是可视化表示图。
更新:
编程语言:PHP(用于Web应用程序的Laravel,用于API的Lumen)
数据库:MySQL
主机:AWS
答案 0 :(得分:0)
在运行时和数据库之间打开新连接需要操作系统创建新的套接字(如果运行时和数据库位于同一系统上,则此套接字可能是linux套接字,否则该套接字是tcp / udp套接字) 该套接字创建本身具有开销。 因此,我不建议在每次使用数据库后打开和关闭连接。 但您需要满足特定条件。 例如,您的数据库的并发连接数有限,并且使用此连接您有数千个长时间运行的进程,也许在这种情况下,您可以使用第二种方法。