首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL在Windows上的奇怪行为(CPU 100%提供简单查询)

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

Server Fault用户
提问于 2020-11-16 22:49:03
回答 1查看 162关注 0票数 1

我们在Windows2019服务器上运行MySQL 8(戴尔R420,32核,64 32,Raid10上的SSD)。有时,我们的网站会完全离线,因为MySQL服务器上的CPU完全处于瓶颈状态(CPU 100%)。

经过一番调查,我们发现这些查询堆积在一起,需要很长时间才能返回结果:

代码语言:javascript
复制
SELECT count(id)
FROM g3hy2_usergroups

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

当我们手动运行这个查询时,返回结果需要花费0.037秒,但是在我们运行它第40次(例如)之后,我们点击了"bug“,并花费了永远地来返回结果(实际上它会永远运行,我怀疑直到它到达MySQL超时为止)。

我不知道这是否是MySQL错误和/或我们的数据库有什么问题,或者其他一些我们无法想到的问题。

但我们希望有更深层次的知识的人给我们一个提示,这样我们就可以朝正确的方向看,我们就能接近解决这个问题的一步了。

顺便说一句,这不是硬件问题,因为我们尝试过不同的服务器,结果是相同的。

谢谢亚历克斯

EN

回答 1

Server Fault用户

发布于 2020-11-18 21:13:09

一些可能有帮助的复合索引:

代码语言:javascript
复制
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)

这似乎是无用的;如果可以的话,就扔掉它吧:

代码语言:javascript
复制
JOIN  g3hy2_jreviews_content as jc  ON c.id = jc.content

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

代码语言:javascript
复制
    GROUP BY  p.listing_id
    ORDER BY  p.created DESC
    LIMIT  20;

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

如果您成功地完成了上述任务,那么将这3行移动到UNION的每个D8中。请参阅http://mysql.rjweb.org/doc.php/index_烹饪书_mysql#or

40份的摊子..。这可能是因为您有40个同时运行的查询副本,它们在彼此之间步履蹒跚-共享32个核心。我上面的评论希望能使查询运行得足够快,以防止高速公路相撞。

(EXPLAIN可能有助于分析。)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1042809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档