没有在连接字符串中指定“数据库”的MySQL性能

时间:2019-02-06 13:43:22

标签: mysql

在我的Web应用程序中,我曾经使用连接字符串(如

)连接到MySql数据库
"Server=mysql.myserver.com; Port=3306; Database=my_database; Uid=user; Pwd=password;[...]"

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

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

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

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

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

"SELECT * FROM my_database.my_table"

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

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

预先感谢

1 个答案:

答案 0 :(得分:1)

您应该使用单个连接。

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

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

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