我们有一个用 PHP 和 MySQL 开发的网站,有时会在流量增加时遇到问题。我们几乎以各种方式优化了网站以处理更多请求,但在高峰时段仍然面临问题。
我的一位朋友建议使用 HBase / MongoDB 作为后端来重建站点以提高性能。他还建议,如果我们重建它,我们可以轻松迁移到云服务。但是我们需要学习整个事物并重新开发它。
这样做更好吗?
首先要做的是分析您的 Web 应用程序以确定瓶颈是什么。
如果它确实是对数据库的查询,那么用 mongodb 替换 mysql可能是一个好主意,但是文档数据库的工作方式与关系数据库不同,并且您可能无法移植某些类型的功能。如果您确实决定尝试 mongo,请尽早并经常进行原型制作,因为没有保证,这对您来说会更快。
如果可扩展性确实对您来说是个问题,那么为什么不直接跳入像谷歌应用引擎这样的基于云的 Web 架构。这是基于 java 或 python 和文档数据库 (bigtable) 的,但从一开始就迫使您进入可扩展的“云”架构。
另一种选择是简单地引入(或优化)缓存(使用 memcache) - 这将对您的应用程序的架构影响较小,因此需要较少的努力。
那里也有简单的 MySql 可扩展性选项。回到“黑暗的日子”,我们只是在数据库中投入专用硬件作为第一步,最近,集群成为可能。您还可以使用基于 MySQL 的云类型解决方案。例如,亚马逊的 RDS 声称可以使用与 MySQL 相同的所有命令,并且还声称可以轻松转换。
在您深入了解所有这些之前,我建议您进行优化、索引和分析。我已经运行了基于 PHP/MySQL CMS 的网站,每天有超过 100 万个独立用户,而无需访问云端。代码是关键。