我的服务器的平均负载高达150(并且服务器实际上非常强大8cpus太多RAM等),原因是MySQL占用了我所有的CPU 700%!
我知道Apache / MySQL调优以达到更好的性能,我做了一些,它有点工作,但远远不及我需要的结果。
我的所有问题都来自这种情况:当基于网站文件的缓存无效时,PHP脚本运行以重新创建这些缓存区域,生成MySQL查询(非常繁重的查询,对它们进行了一些优化,但它们仍然在MySQL上征税) )。这很正常,问题是当100个人在高速缓存无效的精确时间点击网站时,他们会生成相同的查询100次 - 这使得MySQL一直沉入我的服务器。
是否有任何MySQL解决方案可以防止重复相同的查询?还是有其他技术可以修复这种特殊情况吗?
答案 0 :(得分:2)
我认为如果重建缓存已经在进行中,您将需要另一个标记,因此只完成一个更新查询,直到完成后使用旧缓存。
这只会触发昂贵的查询一次。
要获得更好的答案,请说明如何使缓存无效。