數據庫存儲類
更新時間 2025-01-20 17:57:42
最近更新時間: 2025-01-20 17:57:42
分享文章
本章節會介紹關系型數據庫存儲類的常見問題。
RDS for MySQL支持哪些存儲引擎
數據庫存儲引擎就是一種數據存儲方式。使用數據存儲引擎實現 存儲、處理和保護數據的核心服務 。利用數據庫引擎可控制訪問權限并快速處理事務,從而滿足企業內大多數需要處理大量數據的應用程序要求。
InnoDB存儲引擎
MySQL數據庫只有InnoDB存儲引擎支持完整的備份、恢復等服務功能,因此RDS for MySQL推薦使用InnoDB引擎。
其他存儲引擎
在MySQL 5.6.40、MySQL 5.7.22 以上的版本中,不支持的存儲引擎如下表所示:
表1 存儲引擎約束限制
| 引擎 | 原因 |
|---|---|
| MyISAM引擎 | MyISAM引擎表不支持事務,僅支持表級別鎖,導致讀寫操作相互沖突。 MyISAM對數據完整性的保護存在缺陷,且這些缺陷會導致數據庫數據的損壞甚至丟失。 MyISAM在出現數據損害情況下,很多都需要手動修復,無法通過產品服務提供的恢復功能進行數據恢復。 MyISAM向InnoDB的遷移透明,大多數情況不需要改動建表的代碼,云數據庫自動轉換InnoDB即可完成遷移。 |
| FEDERATED引擎 | 主備實例支持FEDERATED引擎會導致在遠端數據庫上相同DML重復執行,導致數據錯亂。 FEDERATED引擎會在時間點恢復場景,當全量恢復完成后,遠端數據庫上數據不會跟隨全量備份恢復到全備時的數據狀態,在增量恢復階段再應用數據會導致FEDERATED表數據錯亂。 |
| Memory引擎 | 如果內存表隱式的變空,那在Open表的時候數據庫就會自己產生一個DELETE event到binlog中。這樣當HA集群使用了內存表,那么重啟HA,備庫(或者只讀庫)就會自己產生一個自己的GTID,導致主備不一致,進而引發備庫重建,甚至導致備庫會不停的重建。 使用Memory表,會存在OOM的風險,導致服務被終止。 |
RDS使用的什么存儲
關系型數據庫存儲采用云硬盤,關于云硬盤具體信息,請參見《云硬盤用戶指南》。
關系型數據庫的備份數據存儲采用對象存儲服務,不占用用戶創建的數據庫空間。關于關系型數據庫實例存儲的硬件配置,請參見《對象存儲服務用戶指南》。
RDS是否支持存儲類型變更,普通IO轉超高IO
不支持。當RDS實例已經創建成功后,不支持存儲類型的變更。