0

我的服务器的平均负载高达 150(服务器实际上非常强大,8cpus 太多 RAM 等),其原因是 MySQL 占用了我所有的 CPU 700%!

我知道 Apache/MySQL 调整以满足更好的性能,我已经做了一些,它工作了一点,但远不及我需要的结果。

我所有的问题都来自这种情况:当基于网站文件的缓存失效时,PHP 脚本会运行以重新制作那些缓存区域,生成 MySQL 查询(相当繁重的查询,也对它们进行了一些优化,但它们仍然对 MySQL 造成负担)。这很正常,问题是当有 100 个人在缓存无效的那个精确时间访问网站时,他们会生成 100 次相同的查询 - 这使得 MySQL 一直与我的服务器一起下沉。

是否有任何 MySQL 解决方案来防止相同查询的重复?还是有任何其他技术可以解决这种特殊情况?

4

1 回答 1

2

我认为如果重建缓存已经在进行中,您将需要另一个标记,以便只完成一个更新查询,直到完成之前使用旧缓存。

那只会触发一次昂贵的查询。

要获得更好的答案,请解释您如何使缓存无效。

于 2013-10-21T09:27:22.163 回答