0

我有一个导致 MySQL 性能问题的 PHP 应用程序。发生的情况是:数据库条目扩展一定数量后;它开始随机超时 PHP 页面 300 秒。

我知道我必须重写我的代码,因为它很乱,过时了,而且我基本上在运行很多查询,这可能会更有效率。

但是,我很好奇是什么导致了这种情况,以及是否有短期解决方案。php 应用程序运行良好,但是在浏览了一些页面后,查询的结果表现得像应该的那样,有时加载时间会变为 300 秒。之后,带有数据库结果的页面完美显示。之后,我可以再次查看一些页面,之后该过程随机重新开始。在页面加载的 300 秒内,SQL 进程列表显示了完整加载时间的命令“睡眠”,没有附加任何查询。

4

2 回答 2

0

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

于 2013-03-06T15:19:51.747 回答
0

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

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

此外,如果您不需要 InnoDB 功能但您的数据库是 InnoDB,您可以切换到 MyISAM 并获得一些性能。

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

于 2013-03-06T15:25:17.063 回答