大神们 在富函数的open中从mysql连接池里取连接 连接池初始化是20个 如果富函数的并行度是10 那是不是会同时建立200个数据库链接呢。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用Go-MySQL-Driver连接MySQL数据库并配置了连接池的情况下,连接池的目的是复用数据库连接,以减少频繁创建和销毁连接的开销,并非每个并发请求都会新建一个数据库连接。根据您的描述,连接池初始化设置的最大打开连接数为20个。
当您的富函数(假设是无状态且并发执行的)并行度设置为10时,连接池会管理这些连接,确保它们被有效复用。这意味着在理想情况下,不会因为并行度为10就直接建立200个数据库连接。而是这10个并发的富函数实例会共享连接池中的20个连接。当一个函数实例需要访问数据库时,它会从连接池中获取一个已有的连接(如果可用),使用完毕后再归还给连接池,而不是每次调用都创建新的连接。
总结: - 连接池大小为20个连接。 - 即使富函数并行度为10,也不会直接导致200个数据库连接的建立。 - 并发执行的富函数会复用连接池中的连接,提高效率并控制数据库连接的实际使用数量。
因此,答案是不会同时建立200个数据库链接,而是通过连接池的管理机制,有效地复用那20个初始化的连接来服务高并发的需求。