如何为读写操作实现单独的数据库?

Mat*_*att 29 sql database architecture database-design normalization

我感兴趣的是实现一个架构,它有两个数据库,一个用于读操作,另一个用于写操作.我从来没有实现过这样的东西,并且总是构建单个数据库,高度规范化的系统,所以我不太清楚从哪里开始.我对这个问题有几个部分.

1.了解更多关于这种架构的资源是什么?
2.是否只是一个两个相同的模式之间进行复制的问题,或将您的模式不同而不同的操作,将正常化有所不同吗?
3.如何确保写入一个数据库的数据可以立即从第二个数据库中读取?


任何进一步的帮助,提示,资源将不胜感激.谢谢.

编辑
经过一些研究后,我发现这篇文章,我发现对那些感兴趣的人非常有用.

http://www.codefutures.com/database-sharding/

我发现这篇高度可扩展性的文章非常有用

Pas*_*ent 20

我不是专家,但读/写主数据库和只读从属模式是一种"常见"模式,特别是对于主要进行读取访问或数据仓库的大型应用程序:

  • 它允许扩展(如果需要,你可以添加更多的只读从属)
  • 它允许以不同方式调整数据库(用于高效读取或高效写入)

如何找到有关此架构的更多信息?

互联网上有很好的资源.例如:

它只是在两个相同的模式之间复制的问题,或者您的模式会根据操作而有所不同,标准化也会有所不同吗?

我不确定 - 我渴望阅读专家的答案 - 但我认为模式在传统复制场景中是相同的(尽管调整可能不同).也许人们正在做更多异国情调的事情,但我不知道在这种情况下他们是否依赖数据库复制,听起来更像是"实时ETL".

您如何确保写入一个数据库的数据可以立即从第二个数据库中读取?

我想你需要同步复制(当然比异步慢).虽然有些数据库支持这种模式,但并非所有数据库都支持AFAIK.但是看看这个答案还是这一个用于SQL Server.