刪除或更新資料庫資料時,會使資料在磁碟上的儲存變得不連續,產生空間片段,這導致磁碟空間浪費和資料庫效能下降。DAS支援自動回收MySQL中達到閾值(如資料表空間大小、片段率)的表的空間片段。回收在執行個體可維護時間段執行,且會檢查執行個體負載,以減少對業務影響。
前提條件
執行個體已開啟DAS經濟版或企業版,詳情請參見管理DAS經濟版和企業版。
執行個體類型為:
RDS MySQL高可用系列、三節點企業系列或叢集系列。
MyBase MySQL高可用版。
執行個體已成功建立14天或以上。
執行個體CPU規格不小於4核。
背景資訊
產生資料表空間片段的常見原因:
記錄被Delete,且原空間無法複用。
記錄被Update(通常出現在變長欄位中),原空間無法複用。
記錄插入導致頁分裂,頁的填充率降低。
功能限制
僅支援對儲存引擎為InnoDB的表進行空間片段自動回收。
說明您可以使用
SHOW TABLE STATUS
和SHOW TABLE STATUS LIKE 'table_name';
語句查看目標表的儲存引擎。其中Engine的值為目標表的儲存引擎。僅支援對錶空間在[5,100] GB範圍內的表進行空間片段自動回收。
說明如果資料表空間小於5 GB或者大於100 GB,則不會對該表進行空間片段自動回收。
最佳化前的檢查項
DAS在主執行個體上執行Optimize Table或Alter Table命令來回收資料表空間片段。執行空間片段自動回收操作前,為了減少對資料庫效能和空間的影響,DAS會自動對資料庫進行如下檢查。只有在通過檢測後,才會進行空間片段自動回收。
如下檢查項如有任何一項未通過,對應表的空間片段自動回收操作將立即停止。
執行個體剩餘可用空間至少是需回收表的物理空間的3倍。
說明例如:需回收的表Table_1,該表的物理空間為30 GB,那麼資料庫需要有90 GB的剩餘可用空間。
表上無全文索引(FULLTEXT)。
如下檢查項如有任何一項未通過,會等待1至5分鐘再進行檢查。如果整個可維護時間段內都未通過檢查,DAS會在下個可維護時間段內繼續進行檢查,直至檢查通過,然後執行空間片段自動回收。
執行個體上沒有正在執行的備份任務。
沒有正在執行的表結構變更操作。
查看執行個體的CPU使用率,預估空間片段自動回收需花費的時間,確保前一天和上周同一時間段的CPU使用率低於70%,且執行前的CPU使用率低於80%。
說明例如:表的物理空間為90 GB,預計空間片段回收需花費30分鐘,並且計劃12月10號淩晨3點執行,那麼需確認如下資訊:
2020-12-9 03:00至03:30的CPU使用率需小於70%。
2020-12-3 03:00至03:30的CPU使用率需小於70%。
2020-12-10 03:00的CPU使用率需小於80%。
需片段回收的表上,沒有執行時間超過3秒的SQL。
無懸掛事務(持有鎖但是超過15秒未提交的事務)。
執行個體活躍會話數小於64。
如果未通過檢查,無法使用空間片段自動回收功能,您可以手動執行Optimize Table命令回收資料表空間片段,詳情請參見使用“optimize table”命令釋放MySQL執行個體的資料表空間。
開啟空間片段自動回收
登入DAS控制台。
在左側導覽列中,單擊執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
在左側導覽列中,單擊自治中心。
在自治中心頁,單擊右側自治功能開關。
在
頁簽中,開啟自治功能開關。在最佳化和限流頁簽,勾選空間片段自動回收並配置如下參數。
重要當資料庫執行個體空間狀態達到設定的閾值時,DAS將在資料庫執行個體的可維護時間段內進行空間片段自動回收。
參數
說明
資料表空間
觸發空間片段自動回收單個物理表的最小空間,取值範圍:5 GB~100 GB,預設為10 GB。
單資料表空間過大會導致回收時間長,請根據實際業務情況選擇合適的數值。
說明如果資料庫執行個體上所有的資料表空間均小於5 GB,或者所有的資料表空間均大於100 GB,那麼系統不會進行空間片段回收。
片段率
觸發空間片段自動回收單個物理表的片段率,取值範圍:10%~99%,預設為20%。
片段率過大會降低空間最佳化頻率,請根據實際業務情況選擇合適的數值。
說明如果資料庫執行個體上所有表的片段率均低於10%,那麼系統不會進行空間片段回收。
說明例如資料表空間取值為5 GB,片段率取值為10%時,所有資料表空間大於等於5 GB,小於等於100 GB,且片段率大於等於10%的表,都會觸發空間片段自動回收。
單擊確定。
可選:單擊事件訂閱設定,設定空間片段自動回收事件通知。詳情請參見開啟事件訂閱功能。
配置警示模板進行警示訂閱,以便及時瞭解資料庫執行個體的空間片段自動回收情況。
系統會推薦警示模板並添加對應自治事件的警示規則,您可以依照系統提示進行配置。
選擇需要警示通知的警示聯絡組。
單擊新增連絡人...,添加新的警示連絡人。
單擊新增聯絡組,添加新的警示聯絡組。
單擊目標連絡人後的修改或移除,修改或刪除已有連絡人的資訊。
詳細操作請參見管理警示連絡人。
單擊提交配置,並在彈出的對話方塊中確認警示配置。
相關文檔
當資料庫執行個體儲存空間不足時:
相關API
API | 描述 |
採用非同步方式,大量設定指定資料庫執行個體空間片段自動回收功能的配置參數。 | |
擷取指定資料庫執行個體的空間片段自動回收規則。 | |
批量關閉指定資料庫執行個體的空間片段自動回收功能。 |