PHP和MySQL -大量查询导致300秒超时


PHP and MySQL - Lot of queries causing timeout of 300 seconds

我得到了一个PHP应用程序,它导致MySQL的性能问题。具体情况是这样的:在数据库条目扩展到一定数量之后;PHP页面开始随机超时300秒。

我知道我必须重写我的代码,因为它是混乱的,过时的,我基本上运行了很多查询,可以更有效率。

但是,我很好奇是什么导致了这种情况,如果有一个短期的解决方案。php应用程序工作得很好,但是在浏览了一些页面后,查询结果表现正常,有时加载时间会变为300秒。之后,页面与数据库结果显示完美。之后,我可以再次查看一些页面,之后这个过程随机重新开始。在页面加载的300秒内,SQL processlist显示完整加载时间的"Sleep"命令,没有附加任何查询。

假设问题确实与MySQL有关,您可以尝试为MySQL服务器分配更多内存,看看性能是否有所提高。在这里查看"巨大的"my.cnf配置:

http://fts.ifac.cnr.it/cgi bin/dwww/usr/share/doc/mysql -服务器- 5.0/- examples/my huge.cnf.gz

同样,如果你不需要InnoDB的特性,但你的数据库是InnoDB,你可以切换到MyISAM来获得一些性能。

你还应该检查会话锁定和冲突,这有时会造成超时。您应该在读取/写入数据后立即释放会话,因为会话文件一直处于锁定状态,直到您关闭会话或脚本结束。

如果进程列表没有显示正在运行的查询,那么问题可能出在您的应用程序上,而不是MySQL。看一下这个:我如何找出一个进程在Linux中运行的PHP脚本?