4

在我工作的业务中,我们正在讨论减少主数据库读取负载的方法。

建议的一种选择是从我们的主数据库到从数据库进行实时单向复制。然后应用程序将从从数据库读取并直接写入主数据库。所以...

  • 应用程序从从站读取
  • 应用程序写入主节点
  • Primary 自动更新 Slave

这种方法的主要优点和缺点是什么?

4

2 回答 2

2

几个缺点:

  • 2点故障
  • 应用程序逻辑必须考虑写入和读取之间的延迟,因为它不会立即从辅助数据库中可用

我使用的一种策略是每晚将关键报告数据发送到辅助数据库,并在途中对其进行反规范化,以便可以在该数据库上运行强大的查询,而不是锁定表并从 OLTP 服务器窃取资源。我没有使用任何正式的数据仓库或复制工具,而是确定没有最新数据的问题查询,并在辅助服务器上专门为这些查询创建数据结构。

“复制一切”方法肯定有优点:

  • 您可以在辅助节点上运行任何临时查询,因为它包含您的所有数据
  • 如果您的主服务器死机,您可以快速重新使用辅助服务器来接管
于 2008-09-04T11:29:15.100 回答
1

我们正在使用单向复制,但不是来自同一个应用程序。我们的应用程序正在对主数据库进行读写,数据被同步到 replca 数据库,并且报告工具正在使用这个副本。

我们不希望我们的应用程序从不同的数据库中读取,因此在这种情况下,我建议在主数据库上使用文件组和分区。使用文件组(尤其是在不同的驱动器上)以及对文件和索引进行分区可以大大提高性能。

于 2008-09-04T11:39:19.897 回答