php – 运行大型MySQL查询时网站响应速度慢(所有其他用户)

这似乎是一个显而易见的问题,但我们有一个在Windows 2008服务器上运行的PHP / MySQL应用程序.该服务器总共有大约10个不同的站点.有问题的站点上的管理员选项允许管理员运行报告(通过站点),这些报告很大,在某些情况下可能需要大约10分钟.这些报告是在屏幕上显示数据的巨大mysql查询.当这些报告运行时,整个站点对所有用户来说都很慢.所以我的问题是:

>是否有一种简单的方法来分配服务器资源,因此如果(网站)管理员运行报告,其他用户仍然可以访问该网站而不会出现性能问题?
>即使运行报告会杀死该网站的所有用户的网站,但它不会影响同一服务器上的其他网站.这是为什么?
>如上所述,报告可能需要大约10分钟才能生成 – 是
在这种情况下提供这类报告是不好的做法
网站?这些通常是由隔夜计划任务产生的吗?

提前谢谢了.

最佳答案
有LOW_PRIORITY标志,但我不确定这是否会产生任何积极影响,因为它很可能是您遇到的表/行锁定问题.您可以使用SHOW PROCESSLIST了解正在发生的事情;查询.

如果其他网站运行良好,则更有可能是因为数据库锁定(导致您的Web进程等待锁定被释放).

最后,始终建议在一夜之间运行大型报告查询(或者当服务器负载最小时).拥有read replicated slave也会有所帮助.

转载注明原文:php – 运行大型MySQL查询时网站响应速度慢(所有其他用户) - 代码日志