8.0 新特性 - RESOURCE GROUP

news2024/10/1 15:03:19

文章目录

    • 前言
    • 1. 应用场景
    • 2. 资源组介绍
    • 3. 资源组维护
    • 4. 资源组的限制

前言

MySQL 是单进程多线程的程序,在 8.0 之前所有的线程优先级都是相同的,并且所有的线程资源都是共享的。8.0 之后推出 RESOURCE GROUP 特性 DBA 可以通过资源组的方式修改线程优先级以及所使用的资源,目前仅支持 CPU 资源。

1. 应用场景

业务上经常会有一些跑批操作,这些跑批 SQL 往往较复杂且涉及数据量大,执行起来非常消耗资源,往往是业务低峰夜间执行,避免影响其它线程运行避免 CPU 跑满,堵塞其它线程,导致请求进不去。有了 RESOURCE GROUP 特性,我们可以创建一个资源组,让跑批任务限制在固定的一个或多个 CPU 核上,避免影响其它线程。

2. 资源组介绍

查询现有的资源组,系统默认的资源组,无法进行修改或者删除。

select * from information_schema.resource_groups;

在这里插入图片描述
可以通过下方 SQL 查询资源组的使用情况,被哪些线程使用。

select * from performance_schema.threads\G

在这里插入图片描述
我们模拟要跑一个 UPDATE 批次任务,现在创建一个资源组。

CREATE RESOURCE GROUP Batch
  TYPE = USER
  VCPU = 0
  THREAD_PRIORITY = 10;

将线程与资源组绑定,设置的权重为 10

root@mysql 13:43:  [sbtest]>show processlist;
+----+-----------------+-----------+--------+---------+--------+------------------------+------------------+
| Id | User            | Host      | db     | Command | Time   | State                  | Info             |
+----+-----------------+-----------+--------+---------+--------+------------------------+------------------+
|  5 | event_scheduler | localhost | NULL   | Daemon  | 169216 | Waiting on empty queue | NULL             |
| 61 | root            | localhost | sbtest | Query   |      0 | init                   | show processlist |
| 62 | root            | localhost | NULL   | Sleep   |     13 |                        | NULL             |
+----+-----------------+-----------+--------+---------+--------+------------------------+------------------

会话 ID 等于 61 我们通过会话 ID 定位到线程 ID

select * from performance_schema.threads  where processlist_id = 61;

在这里插入图片描述
将线程与资源组进行绑定:

SET RESOURCE GROUP Batch FOR 115;

执行跑批任务,修改全表值。

root@mysql 13:49:  [sbtest]>update new set new_seenum = 17;
Query OK, 2000000 rows affected (1 min 16.57 sec)
Rows matched: 2000000  Changed: 2000000  Warnings: 0

下图为期间 CPU 使用率指标对比,使用资源组我们可以看到 CPU0 使用率为 100%,而未使用资源组时,CPU 负载还是比较均衡。
在这里插入图片描述

在这里插入图片描述

3. 资源组维护

创建资源组:

CREATE RESOURCE GROUP Batch
  TYPE = USER
  VCPU = 2-3            -- assumes a system with at least 4 CPUs
  THREAD_PRIORITY = 10;

将线程与资源组绑定:

SET RESOURCE GROUP Batch FOR 线程ID;

修改采用 Optimizer Hints 的方式指定 SQL 使用的资源组:

SELECT /*+ RESOURCE_GROUP(Batch) */ * FROM sbtest1;

修改资源组的配置:

ALTER RESOURCE GROUP Batch VCPU = 10-20;

修改资源组的优先级:

ALTER RESOURCE GROUP Batch THREAD_PRIORITY = 5;

禁用资源组:

ALTER RESOURCE GROUP Batch DISABLE FORCE;

删除资源组:

DROP RESOURCE GROUP Batch;

4. 资源组的限制

  • 如果安装了线程池插件,则资源组不可用。
  • 资源组在 macOS 上不可用,它没有提供用于将 CPU 绑定到线程的 API。
  • 目前只能绑定 CPU 资源,不能绑定其他资源。

参考:MySQL Resource Groups

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1613888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么开通扣款服务(原委托代扣),看这一篇就足够你快速开通自动续费周期扣款了。

一、什么是扣款服务 扣款服务(原委托代扣)为微信支付为商户和用户提供的,可以在交易场景之外完成支付的能力。委托代扣是指商户取得用户的扣款授权后,向微信支付发起从用户账户扣款至商户账户的扣款指令,微信支付无需验证用户的支…

解开Intel ECI 的面纱

前言 Intel ECI是一个用于工业领域边缘控制的软硬件平台,我们今天主要探索的是软件部分,也就是系统镜像。区别于传统的Ubuntu或者Debian,ECI的强大之处在于它的实时性以及对于Intel自家芯片的缓存优化能力极强。 那么让我们来探索一下 编译…

Access denied for user ‘zabbix‘@‘localhost‘ (using password: NO)

现象 排查过程 进入数据库show grants for zabbixlocalhost;select host,user from mysql.user;cat /etc/zabbix/zabbix_server.conf | grep DB | grep -vE ‘#|$’cat /etc/zabbix/web/zabbix.conf.php | grep DB 解决办法 mysql 8.0以下 DPassword123.com mariadb -e "…

手写一个Spring IOC框架

目录 一,Spring IOC 二,流程图设计 三,设计思路解析 三,开始写代码 1.准备工作: 2.扫描并加载类信息 3.初始化bean 4.测试一下 一,Spring IOC Spring IoC容器是Spring框架的核心,它通过读取配置信息…

木马——文件上传

目录 1、WebShell 2.一句话木马 靶场训练 3.蚁剑 虚拟终端 文件管理 ​编辑 数据操作 4.404.php 5.文件上传漏洞 客户端JS检测 右键查看元素,删除检测代码 BP拦截JPG修改为php 服务端检测 1.MIME类型检测 2.文件幻数检测 3.后缀名检测 1、WebShell W…

【网络协议】 TCP与UDP协议区别及应用场景深度分析

1. TCP与UDP简介 1.1 TCP 1.1 定义 TCP(TransmissionControl Protocol)传输控制协议。 是一种可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应…

restful请求风格的增删改查-----查询and添加

一、restful风格的介绍 restful也称之为REST ( Representational State Transfer ),可以将它理解为一种软件架构风格或设计风格,而不是一个标准。简单来说,restful风格就是把请求参数变成请求路径的一种风格。例如,传统的URL请求…

SpringBoot---------Lombook

Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法,也就是简化咱们之前pojo,实体类里面臃肿的get/set有参无参。 首先查看一…

【Linux】认识文件(二):重定向

【Linux】认识文件&#xff08;二&#xff09;&#xff1a;重定向 一.stdout,stderr,stdin二.重定向1.什么是重定向i.输出重定向>ii.追加重定向>>iii.输入重定向< 2.重定向原理3.dup2的使用 三.理解linux中的一切皆文件 上篇文件博客中&#xff0c;讲了进程管理已打…

助企扩岗稳就业,2024年成都市重点企业稳就业政策培训会圆满举行!

2024年4月17日&#xff0c;由成都市就业服务管理局主办&#xff0c;成都市金牛区就业服务管理局承办的2024年成都市重点企业稳就业政策培训会&#xff08;金牛区专场&#xff09;在成都市金牛区顺利举行。此次培训会由国际数字影像产业园召集全区70余家重点企业积极参与&#x…

Android Studio实现内容丰富的安卓养老平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 158安卓养老 1.开发环境 后端用springboot框架&#xff0c;安卓的用android studio开发android stuido3.6 jak1.8 idea mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登…

ELK 日志分析(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释&#xff0c;Kiabana 服务的默认监听端口为5601 server.po…

C++11——线程库的理解与使用

目录 前言 一、线程库的构造 1.默认构造 2.带参构造 3.拷贝构造与赋值拷贝&#xff08;不支持&#xff09; 4.移动构造 二、线程调用lambda函数 三、线程安全与锁 1.lambda中的线程与锁 2.函数指针中的线程与锁 3.trylock() 4.recursive_mutex 5.lock_gurad守卫锁…

android开发 多进程的基本了解

目录 如何开启多进程?理解多进程模式的运行机制 如何开启多进程? 给四大组件在androidMenifest中指定android:precess <activityandroid:name".ThreeActivity"android:exported"false"android:process"com.my.process.three.remote" />…

4月21日Linux运维用户相关的添加,分组,修改权限等shell脚本开发第一天

4月21日运维用户相关的添加&#xff0c;分组&#xff0c;修改权限等shell脚本开发第一天 第一天主要实现前2个功能 ​ 主要卡在了&#xff1a; 正确的写法如下&#xff0c;注意[]中的空格&#xff0c;要求很严格&#xff01;&#xff01;&#xff01; #!/bin/bash # 先查看已…

Unity射击游戏开发教程:(3)如何销毁游戏对象 ,添加CD

在 Unity 中销毁游戏对象 在我之前的文章中,我写了关于实例化或创建激光预制体,当发射时,激光预制件将继续在屏幕上移动一段时间。 创建所有这些激光预制件后,最终会减慢游戏速度,因此我们必须通过创建激光预制件来找到平衡,在屏幕上移动直到它超出游戏视图,然后销毁它…

Vue2:标签页一个页面拆分成俩个选项卡

概要 在自己的项目中&#xff0c;标签页组件显示一般就是点击一个页面&#xff0c;然后标签页组件显示该页面的名称。但是如果你是一个页面文件中展示不同的内容比如( 某模块的新增页面 和 详情页面)一般内容新建页面和详情页面差别不是很大&#xff0c;有的内容甚至俩边都会用…

windows驱动开发-设备栈

设备栈是windows内核中非常重要的部分&#xff0c;这部分理解可以让我们在调试中节省大量的时间&#xff0c; 在windows NT体系中&#xff0c;内核所有的设备被按照连接次序加载到设备树上&#xff0c;这棵树的根节点是ROOT节点&#xff0c;每一个设备可以从当前路径一直遍历到…

查询服务器上所有SQL SERVER数据库中是否包含某个字段,且该字段是否包含某个值

公司有一堆相同类别的客户&#xff0c;每个客户都部署了相同的一套系统&#xff0c;每套系统对应一个相同结构的数据库&#xff0c;昨天老板让查一下手机号码177xxxxx248是属于哪个客户的客户。 我要查的这个号码来自于oa_member表中的phone字段&#xff0c;我需要对所有的数据…

Android 性能优化之黑科技开道(二)

3. 其它可以黑科技优化的方向 3.1 核心线程绑定大核 3.1.1 定义 核心线程绑定大核的思路也很容易理解&#xff0c;现在的 CPU 都是多核的&#xff0c;大核的频率比小核要高不少&#xff0c;如果我们的核心线程固定运行在大核上&#xff0c;那么应用性能自然会有所提升。 核…