使用mssql数据库复制的dotNET项目的最佳实践

时间:2013-02-25 08:29:35

标签: c# entity-framework nosql replication

我正在使用C#,实体框架4,mssql开发一个Web项目。 而数据变得越来越大(不是很大,但单个服务器很难), 我们决定改变数据访问层中的某些内容,以提高吞吐量和性能。

因为将数据库更改为nosql对于重构来说代价很高, 我们计划使用数据库复制,我以前从未使用它。

  • 我们是否应该使用多个“连接字符串”,程序员根据“读取”或“写入”操作明确使用?
  • 读取奴隶会导致“脏”读吗?
  • 使用最小化的重构成本来解决此问题的任何其他最佳实践?

我们不限于mssql服务器。

ps:我们没有很多表,但有一些社交数据足够大,很难将表/数据库分开。

1 个答案:

答案 0 :(得分:1)

你不需要NoSQL,你需要摆脱“数据库综合症”:)

这意味着您可以使用一组较小的数据库代替One Big Database。我非常确定您的系统存在许多不同的问题。例如:结算,运送等

为什么不将这些问题分成不同的数据库?因此,您的“计费”子系统将拥有自己的数据库,“运送” - 另一个,无论您拥有多少,都可以。

它现在变得更容易扩展:如果需要,您可以简单地将它们放在单独的服务器上,或者为重要的服务器提供专用硬件并将其余部分放在一起等等。

管理起来也会容易得多:您可以在一个上下文中单独更改内容而不会影响其他内容。

这是什么是“最佳实践”,SOA风格的一部分是什么;)

另一种(在我眼中不太优选)是所谓的“水平分片”。比如说,您的系统使用“项目”运行,您可以简单地将每个“项目”(及其所有数据)放入单独的数据库中。 它也会起作用,但不适合所有事情而且有自己的技巧。