中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL8.0的特點資源管理詳解

發布時間:2020-04-25 16:59:27 來源:億速云 閱讀:239 作者:三月 欄目:MySQL數據庫

本文主要給大家介紹MySQL8.0的特點資源管理詳解,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續在億速云行業資訊里面關注我的更新文章的。

   MySQL支持資源組的創建和管理,并允許將云服務器內運行的線程分配給特定組,以便線程根據組可用的資源執行。組屬性可以控制其資源,以啟用或限制組中線程的資源消耗。DBA可以根據不同的工作負載修改這些屬性。


   目前,CPU時間是可管理的資源,由“ 虛擬CPU ”的概念表示為包括CPU核心,超線程,硬件線程等的術語。服務器在啟動時確定可用的虛擬CPU數量,具有適當權限的數據庫管理員可以將這些CPU與資源組關聯,并將線程分配給組。


   例如,要管理不需要以高優先級執行的批處理作業的執行,DBA可以創建 Batch資源組,并根據服務器的繁忙程度向上或向下調整其優先級。(也許分配給該組的批處理作業應該在白天以較低的優先級運行,在夜間以較高的優先級運行。)DBA還可以調整該組可用的CPU集。可以啟用或禁用組來控制線程是否可分配給它們。

MySQL8.0的特點資源管理詳解

1、資源組組件:


這些功能為MySQL中的資源組管理提供了SQL接口:

①:SQL語句支持創建,更改和刪除資源組,并允許將線程分配給資源組。優化程序提示可以將單個語句分配給資源組。

②:資源組權限可控制哪些用戶可以執行資源組操作。

③:該 INFORMATION_SCHEMA.RESOURCE_GROUPS 表公開了有關資源組定義的信息,而Performance Schema threads表顯示了每個線程的資源組分配。

④:狀態變量為每個管理SQL語句提供執行計數。


2.資源組屬性

 資源組具有定義組的屬性。可以在創建組時設置所有屬性。某些屬性在創建時被修復; 其他人可以在此后的任何時間修改。


如下屬性在資源組創建時定義,無法修改:

①:每個組都有一個名字。資源組名稱是表和列名稱之類的標識符,除非它們包含特殊字符或保留字,否則無需在SQL語句中引用。組名稱不區分大小寫,最長可達64個字符。

②:每個組都有一個類型,或者是 SYSTEM或者USER。資源組類型會影響可分配給組的優先級值范圍,如稍后所述。此屬性與允許的優先級的差異一起使得能夠識別系統線程,以便保護它們免于針對用戶線程爭用CPU資源。


注意:系統和用戶線程對應于Performance Schema threads表中列出的后臺和前臺線程 。


如下這些屬性在資源組創建時定義,并且可以在以后的任何時間進行修改:

①:CPU親緣關系是資源組可以使用的一組虛擬CPU。親和關系可以是可用CPU的任何非空子集。如果組沒有親和力,則可以使用所有可用的CPU。

②:線程優先級是分配給資源組的線程的執行優先級。優先級值的范圍從-20(最高優先級)到19(最低優先級)。系統組和用戶組的默認優先級均為0。

③:可以啟用或禁用每個組,從而使管理員可以控制線程分配。線程只能分配給已啟用的組。


注意:

系統組的優先級高于用戶組,確保用戶線程的優先級不會高于系統線程:

  ①:對于系統資源組,允許的優先級范圍是-20到0。

  ②:對于用戶資源組,允許的優先級范圍是0到19。


3、資源組管理:

   默認情況下,有一個系統組和一個用戶組,分別名為SYS_default和 USR_default。無法刪除這些默認組,并且無法修改其屬性。每個默認組都沒有CPU關聯,優先級為0。


注意:

 ①:新創建的系統和用戶線程分別分配給 SYS_default和 USR_default組。

 ②:對于用戶定義的資源組,將在創建組時分配所有屬性。創建組后,可以修改其屬性,但名稱和類型屬性除外。

 ③:創建和管理資源組需要有:RESOURCE_GROUP_ADMIN權限


--查看mysql默認的組:一個用戶組和系統組:

mysql> SELECT * FROM INFORMATION_SCHEMA.RESOURCE_GROUPS\G
*************************** 1. row ***************************
   RESOURCE_GROUP_NAME: USR_default
   RESOURCE_GROUP_TYPE: USER
RESOURCE_GROUP_ENABLED: 1
              VCPU_IDS: 0-0
       THREAD_PRIORITY: 0
*************************** 2. row ***************************
   RESOURCE_GROUP_NAME: SYS_default
   RESOURCE_GROUP_TYPE: SYSTEM
RESOURCE_GROUP_ENABLED: 1
              VCPU_IDS: 0-0
       THREAD_PRIORITY: 0
2 rows in set (0.01 sec)


其中:THREAD_PRIORITY值是0,表示默認的優先級; VCPU_IDS值示出了包括所有可用CPU的范圍內;對于默認組,顯示的值取決于運行MySQL服務器的系統。


例子:創建一個用戶資源組:
CREATE RESOURCE GROUP Batch
  TYPE = USER
  VCPU = 2-3          
  THREAD_PRIORITY = 10;
  
mysql> SELECT * FROM INFORMATION_SCHEMA.RESOURCE_GROUPS    WHERE RESOURCE_GROUP_NAME = 'Batch'\G   ---查看這個用戶資源組
*************************** 1. row ***************************
   RESOURCE_GROUP_NAME: Batch
   RESOURCE_GROUP_TYPE: USER
RESOURCE_GROUP_ENABLED: 1
              VCPU_IDS: 2-3
       THREAD_PRIORITY: 10


--:要將線程分配給Batch組,請執行以下操作:

SET RESOURCE GROUP Batch FOR thread_id;


--:如果自己的當前線程應該在 Batch組中,請在會話中執行以下語句:

SET RESOURCE GROUP Batch;

(此后,會話中的語句將使用Batch組資源執行 。)


例子2:要使用Batch組執行單個語句 ,請使用 RESOURCE_GROUP優化程序提示:

INSERT /*+ RESOURCE_GROUP(Batch) */ INTO t2 VALUES(2);


例子3:對于系統高負載的時間,減少分配給組的CPU數量,降低其優先級,或者(如圖所示):

ALTER RESOURCE GROUP Batch  VCPU = 3   THREAD_PRIORITY = 19;


例子4:在系統負載較輕的情況下,增加分配給組的CPU數量,提高其優先級,或者(如圖所示):

ALTER RESOURCE GROUP Batch  VCPU = 0-3  THREAD_PRIORITY = 0;


4、資源組復制

 資源組管理是發生它的服務器的本地管理。資源組SQL語句和對resource_groups數據字典表的修改 不會寫入二進制日志,也不會被復制。


5、資源組的限制:

①:如果安裝了線程池插件,則資源組不可用。

②:資源組在macOS上不可用,它不提供用于將CPU綁定到線程的API。

③:在FreeBSD和Solaris上,忽略資源組線程優先級。(實際上,所有線程都以優先級0運行。)嘗試更改優先級會導致警告:

④:在Linux上,除非CAP_SYS_NICE設置了功能,否則將忽略資源組線程優先級。Linux系統的MySQL軟件包安裝程序應該設置此功能。對于使用壓縮 tar文件二進制分發或從源安裝,CAP_SYS_NICE可以使用setcap 命令手動設置該功能,指定mysqld可執行文件的路徑名 (這需要 sudo訪問)。您可以使用getcap檢查功能。例如:

shell> sudo setcap cap_sys_nice+ep ./bin/mysqld

shell> getcap ./bin/mysqld

./bin/mysqld = cap_sys_nice+ep

⑤:在Windows上,線程以五個線程優先級之一運行。資源組線程優先級范圍-20到19映射到這些級別。

看了以上關于MySQL8.0的特點資源管理詳解,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。

 




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

纳雍县| 师宗县| 江达县| 会宁县| 获嘉县| 镇康县| 永定县| 当雄县| 孙吴县| 潮安县| 那坡县| 磴口县| 子洲县| 库伦旗| 个旧市| 修水县| 深州市| 教育| 瑞金市| 江华| 高要市| 柳江县| 扎囊县| 宁德市| 礼泉县| 通州市| 揭阳市| 青州市| 潼南县| 兰坪| 莎车县| 礼泉县| 南漳县| 巴东县| 芦溪县| 明水县| 武清区| 新丰县| 逊克县| 昭通市| 交口县|