将 MySQL 数据库一分为二可能会缓解服务器“连接过多”的问题?我不这么认为

将 MySQL 数据库一分为二可能会缓解服务器“连接过多”的问题?我不这么认为

我被要求将 MySQL 一分为二,这是一种水平分区,其中一些行对应一个站点,另一些行对应另一个站点。
但他们想将其拆分为同一 MySQL 服务器中的两个数据库。
我不是数据库专家,但我想将它们放在具有相同内存和处理器数量以及相同平台的同一 MySQL 服务器中不会​​改善情况。
我们试图避免的是“连接过多”问题。

答案1

不建议在同一台服务器上运行多个实例来解决连接限制问题。

如果您指的是同一服务器上同一实例上的多个数据库,那么这主要是一个架构考虑,而不一定是资源问题的直接解决方案。

听起来您的服务器需要调整。我之前提供过连接调整建议,这应该会有所帮助:

如何在 Mysql 中设置 my.cnf 以使其不受连接限制?

答案2

首先,您应该调查为什么会耗尽连接。客户端是否获取连接然后长时间持有它?Web 服务器的每个子服务器是否都有自己的连接,还是服务器管理连接池?

我建议打开通用查询日志进行调查 - 它记录连接详细信息。请注意,您可能不想在一般生产使用中打开通用查询日志!

同一台服务器上拥有多个数据库不会改变与该服务器的连接。

仅当您确实有大量客户端并且已知这些客户端能够正确管理连接时才增加连接数。但是,在大多数情况下,“连接数过多”表示客户端存在问题。

答案3

你是对的,这无助于解决连接问题(假设你的意思是两个 dbs 和一个 mysql 二进制文件运行,而不是在同一个硬件上安装两个不同的 mysql,这可能会有所帮助,但却是一种完全倒退的做法……)

相关内容