【发布时间】:2017-01-25 10:40:35
【问题描述】:
我们希望通过基于 MySQL 和 PHP 的应用程序获得更好的性能。
目前的情况是一个电子学习系统,根据星期几和/或一天中的时间接收一些“突发”查询。 (例如,数百名来自不同学校的学生同时开始训练)
您可能已经猜到,这些系统一直都需要实时计算。
一般来说,我们很少有慢查询,当它们出现在日志中时,我们会尝试改进它们。
硬件是自托管的,目前是 VPS,不是我们的硬件,但我们将硬件升级作为解决方案的一部分。
我们有一个读/写密集型的特定表。我们认为它涉及对该表的磁盘访问。 (学习日志)
我们正在尝试找出可以提高性能的硬件和/或软件设置,尤其是在需要该日志表时。
我们正在考虑的一种解决方案是使用复制来平衡“写入”和“读取”查询。 (代理 SQL + 复制) 如果主人不可用,我们担心这种设置会发生什么......
我们目前正在开发的一种软件可能性是创建一个“汇总”表,每天只计算一次左右。这应该至少在应用程序的 2 个屏幕上释放一些压力。在这种情况下,瓶颈似乎与临时表的创建和连接表的数量有关。
我可以根据需要添加详细信息,请不要犹豫。
编辑:重新制定
有哪些可能的 MySQL 设置可用于获得更好的性能?复制、集群还是其他?
非常感谢您的宝贵时间。
【问题讨论】:
-
好的。感谢您的状态报告……尽管这个社区专注于问题。
-
我明白了,我可能没有说清楚。我编辑了帖子。
-
您可能希望至少试用 APM,例如 new relic 或 appdynamics,以确定您的实际瓶颈在哪里。如果大部分时间都花在等待数据库读取上,则绝对应该添加一些从数据库服务器。
-
请提供一些常见/慢速查询以及
SHOW CREATE TABLE。有时,改进就像添加复合索引一样简单。
标签: php mysql optimization