我想知道是否有一个 PHP/MySQL 配置选项(或选项组合)可以防止少数地方的长时间运行的 PHP 脚本创建挂起和休眠的 MySQL 事务,这些事务累积起来并可能导致整个 MySQL 服务器崩溃。
以下是我想要避免的情况:
假设我启动了一个新网站,其中某个部分有一个非常低效的 PHP 循环,该循环从未得到解决或无法预见。一旦网站启动并且流量巨大,查询就会出现,我们会收到 504 错误。
此时,我们积累了大量处于休眠状态的 MySQL 连接,如果达到最大连接限制,数据库服务器和网站其余部分就会随之瘫痪。这一切都是因为一个页面上的一个查询。
我希望做的是防止性能不佳的 Twig/PHP 代码甚至出现可能性导致服务器瘫痪。某些机制或服务器配置选项会导致用户那页面查看错误,防止挂起交易,并防止数据库发生影响其他所有人的灾难性故障。
我知道,最终查询本身需要优化。但我想做的是设置预防措施,以防止服务器崩溃,从而影响网站上的其他用户。
有什么办法可以防止这种情况发生吗?