成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

幾種常見的 MySQL/PolarDB-MySQL 回收表空間方法對比

數據庫 新聞
架構師和DBA在系統設計之初就要考慮滿足未來幾年內的業務需求,同時又能最大化地節省成本,這是比較合理的架構布局和容量規劃的方法。

背景

為什么需要回收表空間?任何一個存儲或您購買的實例規格都有容量限制,并且根據存儲介質不同,保存方式不同,相應地成本也會不同。在線數據庫的存儲成本是比較高的,所以架構師和DBA在系統設計之初就要考慮滿足未來幾年內的業務需求,同時又能最大化地節省成本,這是比較合理的架構布局和容量規劃的方法。而大多數系統是沒有經過以上步驟直接上線的,這種隨著業務的發展在線數據會保留的越來越多,當存儲容量不夠時可以通過升級實例規格或硬件解決,但如果沒有更大的規格時,只能刪除數據回收表空間了。

回收表空間的常見方法

在刪除回收表空間時,通常有以下幾種方法:

編號

刪除方法

回收方法

適合場景


1

  1. CREATE TABLE A' LIKE A;
  2. INSERT INTO A' SELECT * FROM A WHERE ;
  3. DROP TABLE A;
  4. RENAMETABLE A' TO A;

DROP TABLE A;

保留數據少,刪除數據多;但要極短時間暫停源表上的數據寫入(通常毫秒級別完成);

可能會引起性能抖動

2

  1. DELETE * FROM A WHERE ;
  2. ALTER TABLE A ENGINE=INNODB;/OPTIMIZE TABLE A;

ALTER TABLE A ENGINE=INNODB;/OPTIMIZE TABLE A;

保留數據多,刪除數據少;建議DELETE時用DMS的無鎖數據變更(參考
?https://help.aliyun.com/document_detail/162507.html),否則DELETE時也可能引起性能抖動

可能會引起性能抖動

3

ALTER TABLE A DROP PARTITION partition_name;

ALTER TABLE A DROP PARTITION partition_name;

分區表

可能會引起性能抖動

4

DROP TABLE A_0000/A_20100101;

DROP TABLE A_0000/A_20100101;

已經人為分表存儲設置,如:按取模或日期分表

可能會引起性能抖動

針對DROP TABLE A可能會帶來的性能抖動可以通過阿里云內核經過特殊優化Purge Large File Asynchronously(https://help.aliyun.com/document_detail/134095.html)默認已經打開。

而對于ALTER TABLE的操作,目前業界開源的有gh-ost、pt-online-schema-change和OnlineSchemaChange,阿里云RDS MySQL也專門研發了無鎖結構變更。本文針對幾種常見的表空間回收的方式做了測試,希望給開發或運維人員提供更穩定的變更參考方式,保障生產環境的穩定性。

各類工具對比

1.比pt-online-schema-change的trigger對原表影響較小

pt-online-schema-change的工作原理是創建和源表A一樣的表A_gst執行DDL操作,同時在A上創建一個DML觸發器,然后將A中的數據拷貝到A_gst,在拷貝過程中產生的增量變更就用觸發器完成同步更新。拷貝結束后執行兩張表的rename操作完成變更。

2.OnlineSchemaChange

工作原理和pt-online-schema-change基本一致,不同的地方是它采用的是異步模式,在A_gst的基礎上創建了一張日志表,觸發器的條目更新將直接落在日志表中,后臺進程將日志表中的條目應用到A_gst表。這樣整個流程上是異步的,也能夠控制回放速度。

3.gh-ost

與上面兩種變更流程基本一致,但是沒有使用觸發器的設計,所以增量變更的數據來源不是觸發器,而是Binlog文件。訂閱讀取該文件中A表的變更記錄,將記錄解析并應用到A_gst表。這樣的數據對于gst表回放非常有利,binlog中存儲的都是A表的記錄,易于直接讀取和應用。

4.DMS的無鎖結構變更

采用了無觸發器的設計,能有效解決觸發器設計帶來的鎖、數據庫開銷等問題。同時和DTS的聯動,執行表空間回收時會把臨時表也傳送到DTS,這樣DTS的同步下游鏈路不會中斷。

為了驗證DMS的無鎖變更的穩定性,做了4次測試分別是:

  • 編號34221藍色曲線,基準oltp_insert測試作為對比基線;
  • 編號34222綠色曲線,基準oltp_insert測試+DMS的無鎖變更+ALTER TABLE [tbname] ENGINE=INNODB;
  • 編號34237黃色曲線,基準oltp_insert測試+關閉DMS的無鎖變更+RDS kernel ALTER TABLE [tbname] ENGINE=INNODB;
  • 編號34239灰色曲線,基準oltp_insert測試+關閉DMS的無鎖變更+RDS kernel OPTIMIZE TABLE [tbname];

以藍色基線為基準,從圖中可以看出綠色曲線相較于同樣是執行回收表空間的黃色和灰色平穩,但持續時間較長;綠色、黃色、灰色曲線到最后都會臨時表重命名成正式表的過程,最多2s。

測試結論

結合實際業務來說推薦性能比較穩定的DMS無鎖變更+ALTER TABLE。使用DMS的無鎖變更可以打開DMS控制臺,在頁面頂部,選擇全部功能 > 數據方案 > 無鎖變更

注意事項

  1. 不支持字符串類型的主鍵(dms是一塊一塊的拷貝,最大值和最小值確定拷貝范圍,然后分成若干塊拷貝,會用到很多min max計算范圍的SQL)

參考

如何用DMS進行無鎖結構變更(https://help.aliyun.com/document_detail/98373.html)

關于optimize和alter的原理(https://developer.aliyun.com/article/579242)

責任編輯:張燕妮 來源: 阿里云云棲號
相關推薦

2021-01-08 08:10:34

MySQL表空間回收

2010-11-24 09:56:20

mysql拷貝表

2019-11-08 08:50:06

工具代碼開發

2020-12-08 09:45:07

MySQL數據庫索引

2010-11-23 13:57:50

MySQL獨立表空間

2010-05-17 15:17:06

MySQL常用操作

2021-09-08 19:35:02

MySQL Keyring加密

2021-07-14 10:38:29

MySQL共享表獨立表

2010-04-26 13:47:02

Oracle性能調整

2009-09-18 09:16:06

.NET垃圾回收

2010-10-15 10:58:13

Mysql清空表

2010-11-24 09:37:01

mysql快速建表

2010-10-15 10:37:27

MySQL創建關聯表

2010-11-23 09:57:36

MYSQL表信息

2010-09-01 16:07:25

無線局域網

2022-02-17 09:12:55

MySQL數據庫設置變量

2009-06-23 14:23:00

名稱空間Java API

2009-12-17 11:14:50

Ruby on Rai

2010-11-23 09:13:47

mysql修改表結構

2010-11-23 15:33:17

MySQL分表處理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91免费视频 | 九九亚洲精品 | 久久久久久久国产精品视频 | 久久精品国产一区二区三区不卡 | 99热精品在线 | 欧美精品一区二区三区四区 在线 | 综合久久亚洲 | 亚洲精品一区二区 | 成人免费片| 一级黄色夫妻生活 | 欧美中文字幕在线观看 | 噜啊噜在线 | 夜夜干夜夜操 | 久久精品免费 | 国产一区二区电影 | 一级a性色生活片久久毛片 午夜精品在线观看 | 久久久69 | 亚洲男女视频在线观看 | 久久久久国产一区二区三区四区 | 91丨九色丨国产在线 | 五月激情六月婷婷 | 亚洲a一区| 国产日韩欧美在线播放 | 一区二区三区回区在观看免费视频 | 日日人人 | 天天插日日操 | 少妇特黄a一区二区三区88av | 91在线精品一区二区 | 中文天堂在线观看 | 在线观看免费av网站 | 在线观看国产三级 | 黄色网址在线免费观看 | 成人午夜性成交 | 亚洲国产成人精品女人 | 国产美女视频 | 国产成人午夜电影网 | 亚洲成人在线免费 | jizz在线看片 | 黄网站涩免费蜜桃网站 | 亚洲精品一区av在线播放 | 99精品视频在线观看免费播放 |