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