沃梦达 / IT编程 / CMS教程 / 正文

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

我正在使用Amazon RDS实例为我的所有6个WordPress网站托管MySQL数据库.在最大网站流量达到峰值的那一刻,RDS实例的CPU利用率达到100%超过一小时.我正在考虑通过read活动拆分数据库服务器的负载.我网站的大部分流量都...

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

我正在考虑通过read活动拆分数据库服务器的负载.我网站的大部分流量都来自未登录的用户.所以,我想将这些未登录的用户连接到一个只读副本RDS实例,为什么其余的,到源RDS实例,我正在使用的当前数据库连接.

我如何实现这一目标?

解决方法:

缩放Wordpress
随着您网站上的流量增加,您在服务器上也会遇到更多负载.为了跟上你的速度,你有两种可能性:扩大规模 – 增加你的盒子的大小 – 这 – 特别是在AWS上 – 显然除了其他缺点之外还有限制,例如在两个方向上进行缩放的停机时间.

向外扩展:拆分流量,让几台机器完成工作.
只需在流量增加超过阈值时添加计算机,并在流量较低时移除电源.

通常设置中的扩展可以在Web服务器或数据库服务器上完成. AWS可以帮助您.由于数据库是常见的瓶颈而且这个问题实际上希望解决这个问题,我现在将讨论数据库扩展.

Amazon RDS(托管MySQL SaaS)提供一键式解决方案来创建数据库的只读副本.在数据库世界中,只读副本称为复制从属.在主服务器上执行的每个修改查询都将在您的从属计算机上自动重播.

您可以根据需要创建任意数量的只读副本来为用户提供服务.
现在是复杂的部分.我们正在谈论READ复制品.这意味着,您无法在所有实例上随机平衡查询.只有主服务器才能编写查询.

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

尽管Wordpress并非专为主从设置而设计,但本身并不支持这一点,我们都知道有很多博客存在大量流量.

幸运的是,有一个名为HyperDB的解决方案

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

这是一个Wordpress插件,它可以

  • Read and write servers (replication)
  • Configurable priority for reading and writing
  • Local and remote datacenters
  • Private and public networks
  • Different tables on different databases/hosts
  • Smart post-write master reads
  • Failover for downed host
  • Advanced statistics for profiling

这个插件将取代Wordpress中的默认数据库抽象层.
它由Wordpress团队开发并积极使用.

只需下载并确保仔细遵循安装说明.

玩得开心!

本文标题为:如何使用1个数据库连接进行读取,另一个用于写入WordPress MySQL?