資源組的作用是資源隔離(你可以理解爲開通雲主機時勾選的硬件配置),將線上的慢SQL線程id分配給CPU一個核,讓它慢慢跑,從而不影響CPU整體性能。
創建一個資源組
mysql> create resource group slowsql_rg type=user vcpu=3 thread_priority=19 enable;
slowsql_rg爲資源組名字
type=user 來源是用戶端的慢SQL
vcpu=3 給它分配到哪個CPU核上(你可以用cat /proc/cpuinfo | grep processor查看CPU有多少核)
thread_priority爲優先級別,範圍是0到19,19是最低優先級,0是最高優先級。
查看資源組信息
mysql> select * from information_schema.resource_groups;
查找慢SQL的線程ID
SELECT THREAD_ID,PROCESSLIST_INFO,RESOURCE_GROUP,PROCESSLIST_TIME FROM performance_schema.threads WHERE PROCESSLIST_INFO REGEXP 'SELECT|INSERT|UPDATE|DELETE|ALTER' AND PROCESSLIST_TIME > 10;
把THREAD_ID取出來的值,放入資源組裏做限制
set resource group slowsql_rg for 379;
比如你想放寬的限制,也可以更改
ALTER RESOURCE GROUP slowsql_rg VCPU = 3 THREAD_PRIORITY = 0;
關閉資源組,解除限制
ALTER RESOURCE GROUP slowsql_rg DISABLE FORCE;