【问题标题】:Scaling phpBB?缩放phpBB?
【发布时间】:2010-10-12 07:20:03
【问题描述】:

我希望通过将读取查询与写入查询分离到两个单独的、复制的 MySQL 服务器来扩展现有的 phpBB 安装。任何人都成功地做到了这一点,特别是 phpBB?

到目前为止,我最大的担忧是查询似乎随意地散布在整个代码中。我很想知道是否有其他人这样做,如果是,它是如何进行的/过程是什么。

【问题讨论】:

  • 有点好奇你为什么要这样做? .. 你有没有做过某种基准测试,表明继续这样做比简单地负载平衡你的流量更胜一筹?
  • 它将与基本负载平衡并行完成。我们预计来自世界各地的大量流量会集中在很短的时间内,并且需要对现有系统进行改造。
  • @Scott Evernden 分离对不同物理数据库服务器的读取和写入是高度事务性系统的常见良好做法。当一个线程正在写入一行时会发生表锁定,这意味着所有其他线程在写入完成之前都无法从中读取。通过将读取转移到从属副本(仅在提交后将新数据发送给它们),这意味着读取永远不必等待。

标签: php mysql scaling phpbb


【解决方案1】:

您可以尝试MySQL Proxy,这是一种在不更改应用程序的情况下拆分查询的简单方法。

【讨论】:

  • 这是我现在正在研究的问题。谢谢。
【解决方案2】:

只需添加更多 RAM。足够的 RAM 来容纳整个数据库。您会惊讶于您的低效脚本的运行速度有多快。内存可以原谅很多数据库扩展错误。

【讨论】:

  • 这个逻辑只到此为止。我们有一些 Web 应用程序在具有 128GB 内存、32 个内核等的服务器上运行。但即使这样也不足以容纳整个数据仓库。
【解决方案3】:

我知道很久以前有人问过这个问题,但我想分享一下我的经历,以防它对任何人有所帮助。

如果你的问题是表锁,并且知道当时phpbb的默认存储引擎是MyISAM,你有没有考虑转移到InnoDB存储引擎?

只需找出哪些表最常被锁定,然后将它们转换为 InnoDB。 session 表是这里的第一个候选者,但如果这是您的主要瓶颈,您可能希望查看其他优化(例如仅将会话数据存储在 memcache 中或其他东西中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多