gpt4 book ai didi

mysql - 我应该在 Go Web 应用程序中始终打开 1 个全局数据库连接吗?或者我应该每次都打开并关闭它?

转载 作者:行者123 更新时间:2023-11-29 15:19:27 25 4
gpt4 key购买 nike

Go 中的网络应用程序。假设这是一个博客。假设每天有 1000 个 session 。

我应该创建一个全局数据库连接并使其始终处于事件状态吗?或者我应该在每次需要查询数据库时打开和关闭它?一般规则是什么?

最佳答案

您应该为每个应用程序创建一个全局连接对象。该连接对象配置有连接池。每个连接对象根据给定的配置保存一定数量的连接。

如果您为每个请求创建和删除它,它将为每个请求创建和销毁连接池。

只需使用单例模式创建一个具有所需配置的全局连接对象,它将在内部为您管理连接池。

此外,处理应用程序的正常关闭。当您收到应用程序终止操作的信号时,请确保正确关闭全局连接对象。像这样:-

    shutdown := make(chan os.Signal, 1)
signal.Notify(shutdown, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL)
<-shutdown
connection.Close()

关于mysql - 我应该在 Go Web 应用程序中始终打开 1 个全局数据库连接吗?或者我应该每次都打开并关闭它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59463335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com