【发布时间】:2018-10-23 02:18:10
【问题描述】:
需要对此有所了解的软件架构。以下哪项在资源(cpu、内存、数据库)方面效率更高?
在一个流中有一个数据库连接? (只有在所有事情都完成后才关闭连接,包括业务逻辑)
在一个流中有多个数据库连接? (查询执行后立即打开然后关闭数据库连接)
根据业务逻辑,这是从查询返回的数据根据业务规则进行清理或操作的地方。
这里附上视觉表示的图表。
更新:
编程语言:PHP(Laravel for web app,Lumen for API)
数据库:MySQL
主机:AWS
【问题讨论】:
-
它在什么上运行?什么语言?还是这纯粹是理论上的?前任。在 PHP 中,我会打开一次,关闭一次。但这意味着在脚本完成之前建立连接。在 Java 中,WebSphere 将通过连接池来处理这个问题。在更理论的层面上,如果您的处理(业务逻辑)不是太长,您的数据库应该能够保持该连接打开以完成流程。但是高负载可能会堵塞您的数据库。你看?有很多潜在的问题取决于你的风格和数据库容量。
-
Nic3500,更新了我的帖子并添加了使用的编程语言。它将使用 PHP(用于 Web 应用程序的 Laravel,用于 API 的 Lumen),而要使用的数据库是 MySQL。全部都在 AWS 中
-
在这种情况下,我会保持连接并在最后关闭它。当然,除非您的处理时间很长(超过几秒钟)。
标签: performance database-design architecture database-connection software-design