gpt4 book ai didi

database - AWS ElastiCache 与 RDS 只读副本

转载 作者:太空狗 更新时间:2023-10-30 01:46:58 24 4
gpt4 key购买 nike

我的应用当前连接到 RDS 多可用区数据库。我还有一个用于为我的分析门户提供服务的单可用区只读副本。

最近我的master数据库负载越来越大,我正在考虑如何解决这种情况,而不必再次扩容我的数据库。我想到的两种方式是

  1. 将所有读取查询从我的应用移至只读副本,并在必要时扩展只读副本。
  2. 实现 ElastiCache Memcached。

对我来说,这两个选项似乎对我来说达到了相同的结果 - 即减少了我的主数据库的负载,但我认为我可能错误地理解了一些基本原理,因为谷歌似乎没有返回任何比较结果他们。

最佳答案

在负载方面,他们的目标相同,但在其他方面有所不同:

数据的最新性:

  • 只读副本将持续从主服务器同步。因此,您的结果可能会落后于 master 0 - 3 秒(取决于负载)。
  • 缓存在特定时间点获取查询结果并将其存储一定时间。您的查询被缓存的时间越长,您的延迟就越大;但是您的主数据库将承受较少的负载。您需要根据自己的应用做出明智的选择。

性能/查询特性:

  • 缓存只能返回它已经看到的查询的结果。因此,如果您一遍又一遍地运行相同的查询,那么它就是一个很好的匹配项。请注意,查询不得包含变化的部分,如 NOW(),但在要获取的实际数据方面必须相等。
  • 如果您有许多不同的、经常变化的或动态的(NOW(),...)查询,只读副本将是更好的匹配。
  • ElastiCache 应该更快,因为它直接从 RAM 返回值。但是,这也会限制您可以存储的结果数量。

因此,您首先需要评估数据的过时程度以及查询的可缓存性。如果您使用的是 ElastiCache,您可能能够缓存的不仅仅是查询 — 例如缓存网站的整个部分而不是仅缓存底层查询,这应该会改善应用程序的整体负载。

PS:你调过索引了吗?如果您的主要问题是写入,那将无济于事。但是,如果您正在与读取作斗争,那么索引是要检查的第一件事,它们确实会产生巨大的影响。

关于database - AWS ElastiCache 与 RDS 只读副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com