首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用一个数据库连接用于读取,另一个用于写入WordPress MySQL?

问如何使用一个数据库连接用于读取,另一个用于写入WordPress MySQL?
EN

Stack Overflow用户
提问于 2012-12-14 16:09:27
回答 2查看 6.8K关注 0票数 3

我正在使用Amazon RDS实例为我所有的6个WordPress网站托管MySQL数据库。在最大站点的流量达到峰值的那一刻,RDS实例的CPU利用率在一个多小时内达到了100%。

我正在考虑按读取活动来分担数据库服务器的负载。我网站的大部分流量都是由非登录用户造成的。因此,我想将这些未登录的用户连接到一个读取副本RDS实例,为什么其余的连接到源RDS实例,即我正在使用的当前数据库连接。

我该如何做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-14 16:50:01

Scaling Wordpress随着网站流量的增加,服务器上的负载也会增加。为了跟上你的速度,你有两种可能:scale up -增加你的盒子的大小-这-特别是在亚马逊网络服务-显然除了其他缺点外,比如双向扩展的停机时间。

scale out:拆分流量,让几台机器来做这项工作。只需在流量超过阈值时添加一台机器,并在流量较低时移除电源。

通常设置中的扩展可以在您的can服务器或数据库服务器上完成。AWS可以帮助您实现这两个目标。由于数据库是常见的瓶颈,而这个问题实际上想要解决这个问题,所以我现在将讨论数据库扩展。

Amazon RDS (managed MySQL SaaS)提供一键式解决方案来创建数据库的读取副本。在数据库世界中,读副本被称为复制从。在主服务器上执行的每个修改查询都会在从机器上自动重播。

您可以根据需要创建任意数量的已读副本来为用户提供服务。现在是复杂的部分了。我们说的是READ副本。这意味着,您不能简单地在所有实例上随机平衡您的查询。只有主服务器接受写入查询。

拆分查询类型和均匀分配负载可以通过像MySQL代理这样的数据库代理来实现,这将需要额外的机器。您的应用程序将与此代理通信,本身不需要任何更改。

尽管Wordpress不是为主从结构设计的,而且它本身也不受支持,但我们都知道,有很多博客都有很多流量。

幸运的是,有一个叫做HyperDB的解决方案

http://wordpress.org/extend/plugins/hyperdb/

这是一个Wordpress插件,它可以

用于读取的

  • 读写服务器优先级以及不同databases/hosts
  • Smart写后主服务器上的远程datacenters
  • Private和公共networks
  • Different表用于分析

的关闭的host

  • Advanced统计信息

这个插件将替换Wordpress中的默认数据库抽象层。它是由Wordpress团队开发并积极使用的。

只需下载并确保仔细遵循安装说明即可。

玩得开心!

票数 10
EN

Stack Overflow用户

发布于 2012-12-14 16:15:30

首先按照Amazon FAQ here中的描述设置一个RDS read副本。然后获取这台机器的客户端端点(参见FAQ中的下一个问题)。

我不确定新版本的Wordpress是否支持你正在使用的开箱即用的功能,但有一种方法可以检查当前用户是否已登录Wordpress。有一个用于检查用户是否已登录的method in Wordpress。如果在建立任何数据库连接之前提前调用此函数,则在遇到登录用户时可以更改数据库连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13874836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档