资源组的类型分为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!
我的新课程《 MySQL性能优化合理利用索引,降低锁影响,提高事务并发度。
目前已有几个录播视频,并且可以回看5-15分钟不等。
下面是报名小程序码,肯定大家推荐给需要的小伙伴们。