前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL8.0功能详解——资源组管理

MySQL8.0功能详解——资源组管理

作者头像
MySQLSE
发布2020-09-28 15:16:44
7770
发布2020-09-28 15:16:44
举报
文章被收录于专栏:MySQL解决方案工程师

MySQL8.0里包括一款功能——CPU资源分组管理。它实现的目的是将CPU资源分组,并且赋予运行不同类型的查询。通过它可以解决DBA的一些痛点,例如:夜间进行的批处理、大型报表非常耗费资源,为了不影响其它查询的进行,不得不将其放在从服务器上运行。使用资源组管理后,DBA可以将工作分配给限定的CPU核心或者是vCPU。另外,DBA还可以将资源分配给不同的应用,例如分配8个核心给应用A,分配4个核心给应用B,使服务器的资源更加合理的使用。

简单说明一下它的使用过程,首先,需要创建资源组,为每个资源组分配适当的CPU核心数量或者是vCPU。其次,将资源组分配给正在运行查询的线程ID。之后,各个查询就会按照不同的资源组限定的范围运行。

下面详细介绍一下相关的内容:

资源组:资源组包括名称,类型,分配的CPU核心,以及优先顺序。创建资源组时,使用SQL执行CREATE RESOURCE GROUP,例句如图:

资源组的类型分为user和system,system的优先顺序要高于user,system的优先范围在-20到0之间,user的范围在0到19。创建之后,可以通过SELECT * FROM INFORMATION_SCHEMA.RESOURCE_GROUPS来查看资源组的信息。例如:

有没有发现什么问题?这个图是创建资源组之前的信息,vcpu显示的为何是0-0?原因在于我的虚机一开始只有一个vCPU,重新配置虚机后,再看一下:

这次显示0-3,证明我为虚机配置了4个vCPU。看一下创建资源组之后的结果:

线程ID:创建好资源组之后,DBA要做的事情就是将其分配给对应的线程ID。可以通过查询performance_schema.threads来查看线程ID。

然后执行:SET RESOURCE GROUP Batch FOR thread_id;

为执行的查询分配资源组之后,DBA还可以根据实际情况修改资源的分配。执行:

这时我们再看一下资源组的信息:

资源已经重新调配,因此,DBA可以灵活的控制CPU资源为各个应用进行服务。

注意事项:

  • 执行资源组元数据的SQL文不会计入日志,因此MySQL的复制功能不会将其进行复制。
  • 如果使用了线程池插件,资源组功能无法使用。
  • 资源组无法在macOS上使用。
  • 资源组在FreeBSD 和 Solaris上会忽略优先顺序。
  • Linux上也会忽略优先顺序,除非开启CAP_SYS_NICE 功能。

更为详尽的内容请访问“https://dev.mysql.com/doc/refman/8.0/en/resource-groups.html”,希望该功能对您有所帮助。

感谢关注MySQL!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档