我想为将来的分片做好准备。但现在我只需要一个节点。
我想要做的是将数据库分成虚拟分片,比如说 12 个分片,然后将它们全部放在同一个服务器节点上。
当我需要扩展时,我只需获取第二台服务器并将 12 个虚拟分片中的 6 个移动到新机器上即可。
一台机器上拥有 12 个不同的数据库是否存在缺陷?
- 我仍然可以只运行 1 个 MySQL 实例来支持这 12 个数据库吗?
- 拥有 12 个数据库是否会导致更高的内存使用量?
- 这是否需要 12 倍的数据库连接数?
- 还有其他陷阱吗?
谢谢。
答案1
没什么问题。内存使用可能会有轻微的开销,但如果您必须考虑分片,那么内存不应该是您的主要问题。
您的应用程序可以使用连接池。大多数 MySQL 连接器都支持此模式,它让池管理器决定以最有效的方式处理请求。理论上,它们也可以使用同一个连接(并发出“USE db_name”来更改数据库),但这会让开发人员感到困惑。