在我的Web应用程序中,我曾经使用诸如以下的连接字符串连接到MySql数据库

"Server=mysql.myserver.com; Port=3306; Database=my_database; Uid=user; Pwd=password;[...]"


现在,在我的应用程序的某些部分中,我需要查询多个数据库。

我的第一个任务是创建多个连接,每个使用的数据库创建一个连接(在我的情况下最多为12个)。

然后,我坚信我可以使用单个连接,而无需设置“数据库”参数,例如

"Server=mysql.myserver.com; Port=3306; Uid=user; Pwd=password;[...]"


然后在每个单独的查询中指定目标数据库。例如。

"SELECT * FROM my_database.my_table"


我猜单连接解决方​​案可能是一个更好的决定,因为我不会增加活动连接的数量,这对我来说尤其有用,因为它是一个Web应用程序,并且可能有一致数量的同时用户。

但是,我不确定什么是最好的选择。我想到了一些问题:我会在执行计划生成时失去性能吗?最差的缓存?我还有什么想念的吗?

提前致谢

最佳答案

您应该使用一个连接。

唯一的缺点是您将需要对模式(数据库)名称进行硬编码,或者使其可配置,这带来了一些不便。

但是,多个连接具有严重的缺点:


跨模式无联接
交易变得更加复杂
实施和使用更加复杂
连接所有这些节点都浪费了一些时间(总计)
服务器将有很多空闲连接

关于mysql - 没有在连接字符串中指定“数据库”的MySQL性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54555042/

10-14 15:23
查看更多