0

我正在使用 C#、实体框架 4、mssql 开发一个 Web 项目。随着数据越来越大(不是很大,但对于单个服务器来说很难),我们决定在数据访问层进行一些更改以提高吞吐量和性能。

因为将数据库更改为 nosql 的重构成本很高,所以我们计划使用我以前从未使用过的数据库复制。

  • 我们是否应该使用多个“连接字符串”,由程序员根据“读”或“写”操作明确使用?
  • 读奴隶会导致“脏”读吗?
  • 还有其他最佳实践可以以最小化的重构成本处理这个问题吗?

我们不仅限于 mssql 服务器。

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

4

1 回答 1

1

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

这意味着您可以拥有一组较小的数据库,而不是一个大数据库。我非常确定您的系统有许多不同的问题。例如:计费、运输等。

为什么不将这些关注点分开到不同的数据库中呢?因此,您的“计费”子系统将拥有自己的数据库,即“运输”-另一个,无论您拥有多少。

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

它也将更容易管理:您可以在一个上下文中单独更改事物而不会影响其他上下文。

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

另一个(在我看来不太好)是所谓的“水平分片”。比如说,您的系统使用“项目”运行,您可以简单地将每个“项目”(及其所有数据)放入单独的数据库中。它也可以工作,但并不适合所有东西并且有自己的技巧。

于 2013-02-25T08:45:33.573 回答