MySQL 并发保护/排队/集群

MySQL 并发保护/排队/集群

我们预计在 30 分钟的时间内我们的 Facebook 页面点击量将达到约 500,000 人次。

动态 - HTML - 静态内容显然将由 Web 服务器、缓存和 CDN 元素处理 - 因此应该不会出现问题。

我需要一些关于专家如何处理如此庞大用户数量下的 MySQL 问题的要点。

  1. Facebook 页面基本上只是一种比赛形式。
  2. 我们将插入一个非常小的数据集
  3. 在此期间没有从数据库读取任何内容。\
  4. PHP 将成为服务器端语言
  5. 我们必须在我们的主机上使用 MySQL,不能使用 RDS 或类似的东西。

我已经阅读了有关集群/排队/表类型的内容 - 但是只是在从 Stack Overflow 上的专家那里获得了一些我可能预料到的问题的实际经验之后。

答案1

唯一有用的答案就是对您的系统进行基准测试,看看您需要什么才能实现您的目标。由于可能的配置数量众多(硬件、软件、配置、外部负载、使用情况等),因此很难给出更具体的答案。

不过,一般来说,每小时 100 万次命中可能并不难,具体取决于每次命中的查询数量及其复杂程度。例如,1 次查询/命中相当于每秒 280 次查询,这在中端硬件上应该很容易实现。例如,我有一台低端 MySQL 服务器,平均每秒 150 次查询,CPU 使用率为 10%。请记住,这是一个经过良好优化的系统,读取使用率很高。

我会首先查看一台服务器是否能够处理您预期的负载,因为即使它需要更高端的硬件,设置起来也会更便宜、更容易。如果单台服务器似乎无法实现,我会考虑一个简单的分区方案:将写入操作拆分到多个独立的 MySQL 服务器(具体如何操作取决于您正在做什么)。

毫无疑问还有其他更复杂的集群/分区设计,但我会尽量保持系统尽可能简单,特别是如果您还不熟悉设置和使用它们。

相关内容