在Windows (简单查询CPU 100% )上,MySQL的奇怪行为

分享于 

2分钟阅读

互联网

  繁體

问题:

我们在Windows 2019服务器上运行MySQL 8(Dell R420、32核,64GB,Raid10上的SSD)。不时地,由于MySQL服务器上的CPU完全成为瓶颈(CPU 100%),我们的网站完全脱机。


SELECT count(id)


FROM g3hy2_usergroups



这是一个非常简单的查询,它只返回该表上的用户组数,表是InnoDB,它表大小仅为80kB。

当我们手动运行此查询时,返回结果需要0.037秒,但是(例如)第40次运行它之后,我们遇到了"bug",返回结果花了很多时间


答案1:

一些综合索引可能会有所帮助:


g3hy2_social_stream_item: INDEX(target_id, context_type, d.created)


g3hy2_social_stream_item: INDEX(target_id, created)


g3hy2_social_stream_item: INDEX(verb, context_type, created, context_id)


g3hy2_content: INDEX(cat_id, id)



如果可以的话,请去掉它:


JOIN g3hy2_jreviews_content as jc ON c.id = jc.content



尝试使用UNION将它移动到派生表中:


 GROUP BY p.listing_id


 ORDER BY p.created DESC


 LIMIT 20;



也就是说,在加入LIMITc之前尝试执行jc,这会降低这些连接的成本。


相关文章