gpt4 book ai didi

如果刷新页面,则不会关闭 mySql 连接

转载 作者:行者123 更新时间:2023-11-29 02:30:21 24 4
gpt4 key购买 nike

如果我的网页在加载完成之前反复刷新,那么 MySQL 连接不会关闭,最终当它超过 150 个进程时会抛出“连接过多错误”。

我没有使用持久连接,我在脚本末尾有一个 mysql_close(),尽管我意识到我不需要它,因为它会关闭。

我怎样才能阻止这种情况发生?我以前在使用过的任何服务器上都从未遇到过这种情况。

为了稳定我的网站,我创建了一个 PHP 脚本,它每分钟都会杀死超过 120 秒的旧进程。这会有所帮助,但当我向我的网站发送更多流量时却无济于事。

最佳答案

这看起来数据库根本无法及时处理所有请求。

当用户访问您的网站时,您的脚本会建立与数据库服务器的连接,执行查询,获取、显示结果,然后关闭与数据库服务器的连接。

如果传入的查询太多或查询的执行时间太长,队列会越来越大,直到服务器爆炸。

你说你杀死了旧的进程——那些不是旧的,它们只是还没有完成,请求的网络服务器进程可能已经超时了

你可以做的事情:

  • 优化数据库结构
  • 优化您的查询
  • 扩展您的硬件(向上扩展,最好是向外扩展)
  • 使用缓存
  • 优化您的服务器设置

最简单、耗时较少但非常有效的改进可能是输出缓存。

您只需保护热点站点的 html 输出并直接传递它,直到缓存过期并刷新缓存。

Nginx 可以为您做到这一点。

http://dangerousprototypes.com/docs/NGINX_reverse_proxy_in_front_of_Apache:_hardened,_high_performance_dedicated_server_setup

如果您提供有关您的网站架构/和您正在使用的软件堆栈的更多信息,我可以为您提供更详细的帮助。

关于如果刷新页面,则不会关闭 mySql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com