MySQL - ALTER RESOURCE GROUP 語句



在 MySQL 中,您可以建立資源組並將執行緒分配給這些組。這些執行緒根據組中資源的可用性執行,即組屬性控制資源,組中的執行緒受可用資源的限制。

MySQL 提供各種語句來建立、更改、刪除組資源以及將執行緒分配給組資源。

ALTER RESOURCE GROUP 語句

您可以使用 MySQL ALTER RESOURCE GROUP 語句修改現有資源組的 CPU 親和性和執行緒優先順序值。使用此語句,您還可以修改資源組的初始狀態(ENABLE 或 DISABLE)。您需要 RESOURCE_GROUP_ADMIN 許可權才能執行該語句。

語法

以下是 MySQL ALTER RESOURCE GROUP 語句的語法:

ALTER RESOURCE GROUP group_name
[VCPU [=] vcpu_spec [, vcpu_spec] ...]
[THREAD_PRIORITY [=] N]
[ENABLE|DISABLE]

其中,group_name 是您需要修改的組的名稱。

更改 CPU 親和性

CREATE RESOURCE GROUP 語句的 VPU 屬性用於設定資源組的 CPU 親和性。如果您沒有傳遞此值,則該組將使用所有可用的 CPU。

假設我們透過為 CPU 親和性提供一些值來建立一個資源組,如下所示:

CREATE RESOURCE GROUP sample_group1 TYPE = USER VCPU = 0,1,2,3;

以下查詢更改上面建立的資源組的 CPU 親和性值:

ALTER RESOURCE GROUP sample_group1 VCPU = 0;

執行緒優先順序屬性

執行緒優先順序屬性用於設定要建立的執行緒的優先順序,如果您沒有傳遞此值,則預設值為 0。資源組中執行緒的優先順序範圍為 -20 到 19。

假設我們建立了一個資源並將執行緒優先順序值設定為 2,如下所示:

CREATE RESOURCE GROUP sample_group2 
TYPE = USER VCPU = 0 THREAD_PRIORITY = 2;

以下查詢更改上面建立的查詢的執行緒優先順序:

ALTER RESOURCE GROUP sample_group2 THREAD_PRIORITY = 15;

ENABLE 屬性

如果您在查詢中使用 ENABLE(屬性值),則資源組最初處於啟用狀態;同樣,如果您在語句中指定 DISABLE,則資源組最初處於停用狀態。

假設我們透過將此值設定為 DISABLE 來建立了一個資源組,如下所示:

CREATE RESOURCE GROUP sample_group3 TYPE = USER 
VCPU = 0 THREAD_PRIORITY = 2 DISABLE;

以下查詢修改上面建立的資源組:

ALTER RESOURCE GROUP sample_group3 ENABLE;

更改不存在的資源組

如果您嘗試更改不存在的資源組,則會生成如下錯誤:

ALTER RESOURCE GROUP none THREAD_PRIORITY = 15;
ERROR 3651 (HY000): Resource Group 'none' does not exist.
廣告