MySQL 8.0 资源组新特性如何详细解读?
- 内容介绍
- 文章标签
- 相关推荐
本文共计907个文字,预计阅读时间需要4分钟。
作者:杨波波
在MySQL 8.0之前,我们可能会遇到一条SQL语句,如:`mysqlselect * from t1 order by rand();` 当多个线程同时执行此语句时,会导致CPU被跑满,其他请求只能被阻塞。这种情况该如何解决呢?大致方法如下:
作者:杨涛涛
在MySQL 8.0 之前, 我们假设一下有一条烂SQL,
mysqlselect * from t1 order by rand() ;以多个线程在跑,导致CPU被跑满了,其他的请求只能被阻塞进不来。那这种情况怎么办?
大概有以下几种解决办法:
那能不能不要杀掉而让他正常运行,但是又不影响其他的请求呢?
那mysql 8.0 引入的资源组(resource group,后面简写微RG)可以基本上解决这类问题。
比如我可以用 RG 来在SQL层面给他限制在特定的一个CPU核上,这样我就不管他,让他继续运行,如果有新的此类语句,让他排队好了。
为什么说基本呢?目前只能绑定CPU资源,其他的暂时不行。
那我来演示下如何使用RG。
本文共计907个文字,预计阅读时间需要4分钟。
作者:杨波波
在MySQL 8.0之前,我们可能会遇到一条SQL语句,如:`mysqlselect * from t1 order by rand();` 当多个线程同时执行此语句时,会导致CPU被跑满,其他请求只能被阻塞。这种情况该如何解决呢?大致方法如下:
作者:杨涛涛
在MySQL 8.0 之前, 我们假设一下有一条烂SQL,
mysqlselect * from t1 order by rand() ;以多个线程在跑,导致CPU被跑满了,其他的请求只能被阻塞进不来。那这种情况怎么办?
大概有以下几种解决办法:
那能不能不要杀掉而让他正常运行,但是又不影响其他的请求呢?
那mysql 8.0 引入的资源组(resource group,后面简写微RG)可以基本上解决这类问题。
比如我可以用 RG 来在SQL层面给他限制在特定的一个CPU核上,这样我就不管他,让他继续运行,如果有新的此类语句,让他排队好了。
为什么说基本呢?目前只能绑定CPU资源,其他的暂时不行。
那我来演示下如何使用RG。

