我有一个不断发展的网站,现在使用单个普通的 MySQL 服务器来执行其任务。我想知道我应该如何以及何时迁移到更强大的服务器,或者换句话说,什么时候是使用镜像服务器或网格或其他单一服务服务器的最佳时机?
我如何才能发现我的 Web 应用程序需要更好的数据库服务器解决方案和配置?我知道我可以研究使用情况和服务器负载,但由于我在管理和开发大型网站方面经验不足,我需要一些关于如何为快速增长的网站配置 MySQL 服务器的建议?最佳实践是什么?
答案1
标准系统指标可能可以很好地反映出您当前的性能受限情况 - 但它们并不能直接衡量性能。
对于胖客户端解决方案来说,衡量性能相当困难。
对于嵌入式应用程序,很容易衡量您的数据库是否以与生成数据一样快的速度吸收数据 - 您要么得到不可接受的积压,要么数据丢失。
就您而言,对于基于 Web 的应用程序,再次测量很简单(开始记录和分析 HTTP 响应时间 - NB 在 Apache 上使用 %D 而不是 %T)。
除此之外,您还需要决定您实际需要什么级别的性能 - 更快几乎总是更好,但这必须与实现该性能的成本相抵消。
我需要一些关于如何配置 MySQL 服务器的建议
预言者弗兰的阅读清单。
请注意,没有灵丹妙药(尽管mysqltuner.pl通常为调整 DBMS 设置提供了良好的开端)。 最大的好处将来自良好的架构/硬件设计和应用程序调优 - 这两者都依赖于对良好数据的良好分析。
答案2
“我知道我可以研究使用情况和服务器负载”
那你就知道该怎么做了:)
您首先应该拥有一个适当的监控/图表系统,以便能够很好地了解数据库性能。不时检查它,发现您的数据库性能“基线”是什么,并密切关注它。
将这些指标与应用程序性能关联起来,了解数据库响应时间如何影响用户 Web 交互和流程。一旦您检测到数据库端确实在降低应用程序的性能(对其进行分析,发现响应时间的百分比用于数据库后端),然后开始担心它并采取行动。
在开始扩展(向上和/或向外)数据库服务器部署之前,请尝试改进应用程序和 SQL 端。永远不要低估通过调整执行计划和(适当的)索引可以提高多少性能。它通常比扩展基础设施更快、更便宜。
我建议你看看这些书,它们可能会对你有所帮助: