在我的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/