我决定在我的 ASP.NET 应用程序中使用 Amazon RDS MySQL。为了将来支持大数据库容量,我决定使用分片,但在一个简单的实现中。我将在单个数据库上工作,当 Id 达到 1,000,0000 以上的增量 id 时,我将使用第二个数据库,依此类推。
每个数据库都将具有相同的数据库架构。现在,我将创建一个变量来保存我正在并行处理的 Amazon RDS 服务器的数量。我将使用 UNION ALL 编写查询。这些查询将动态创建,并将考虑服务器的数量来创建一个 UNION ALL 查询,该查询利用整个服务器来连接数据。然后我将再次查询该数据。
我将仅将这种技术用于我希望变大的表。应用程序将根据我为每个服务器设置的最大 id(即服务器 1,最多 1,000,000)知道向哪个服务器发送删除和更新 sql 查询。对于插入语句,我当然会将数据插入到最后一个服务器。我不需要担心复制、恢复和备份功能,Amazon RDS 会处理这些。
我对你的问题是:
- 这是构建我自己的分片架构的好方法吗?选择更昂贵的解决方案?
- 加入查询怎么样,如果我有不同服务器的连接字符串,我还能在 Visual Studio 中制作它们吗?
- 这个解决方案在性能方面有多好,我需要了解他们的任何问题吗?
一般来说,我想要一个简单的解决方案,让我可以从一台服务器开始,并在需要时轻松扩展。今天的大多数解决方案都非常复杂,即使不是,也非常昂贵。
谢谢