RDS for MySQL支持哪些存储引擎
数据库存储引擎就是一种数据存储方式。使用数据存储引擎实现 存储、处理和保护数据的核心服务 。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序要求。
InnoDB存储引擎
MySQL数据库只有InnoDB存储引擎支持完整的备份、恢复等服务功能,因此RDS for MySQL推荐使用InnoDB引擎。
其他存储引擎
在MySQL 5.6.40、MySQL 5.7.22 以上的版本中,不支持的存储引擎如下表所示:
存储引擎约束限制
引擎 | 原因 |
---|---|
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实例已经创建成功后,不支持存储类型的变更。