数据库管理平台DMP

深信服数据库管理平台(DMP)提供MySQL、Oracle的RDS功能,支持全生命周期管理、自动MySQL主从切换、故障自愈、事务一致性备份、监控告警等,能够实现业务快速上线、资源快速分发、数据安全保护,提供SLA保障,使数据库运维复杂度大幅下降,帮助客户减少被动性救火工作,专注业务创新。
点击可切换产品版本
知道了
不再提醒
DMP 2.3.0
{{sendMatomoQuery("数据库管理平台DMP","RDS 中的 MySQL 文件大小限制")}}

RDS 中的 MySQL 文件大小限制

更新时间:2023-08-28

对于 RDS MySQL 数据库实例,最大预配置存储限制在使用 InnoDB file-per-table 表空间时将表的最大大小限制为16 TB。此限制也将系统表空间的最大大小约束为 16 TB。默认情况下,为 RDS MySQL 数据库实例设置 InnoDB file-per-table 表空间 (表各自位于自己的表空间中)

注意⚠️

某些现有的数据库实例具有下限。例如,在 2014 4 月之前创建的 MySQL 数据库实例的文件和 表大小限制为 2 TB。不管创建数据库实例的时间如何,此 2 TB 文件大小限制也适用于从 2014 4 月之前创建的数据库快照创建的数据库实例或只读副本。

根据您的应用程序,使用 InnoDB file-per-table 表空间有一些优缺点。要确定适用于您的应用程序的最佳方法,请转到 MySQL 文档中的 InnoDB File-Per-Table 模式

建议不要允许表增长到最大文件大小。一般而言,更好的方法是将数据分区到较小的表中,这可以提高性能 并缩短恢复时间。

可用于将大型表划分为较小表的一个选项是分区。分区可基于您指定的规则将大型表的各个部分分布到单独 的文件中。例如,如果您按日期存储事务,则可以创建分区规则,以便使用分区将较旧的事务分布到单独的 文件中。随后您可以定期存档无需随时可供应用程序使用的历史事务数据。有关更多信息,请转到 MySQL 文档中的 https://dev.mysql.com/doc/refman/5.6/en/partitioning.html

确定表的文件大小

使用以下 SQL 命令可确定任何表是否太大以及是否适合进行分区。

SELECT TABLE_SCHEMA, TABLE_NAME,

round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)" FROM information_schema.TABLES

WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

启用 InnoDB file-per-table 表空间

 要启用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为1

禁用 InnoDB file-per-table 表空间

 要禁用 InnoDB file-per-table 表空间,请在数据库实例的参数组中将 innodb_file_per_table 参数设置为0

启用或禁用 InnoDB file-per-table 表空间后,可以发出 ALTER TABLE 命令将一个表从全局表空间移至它自 己的表空间,或从它自己的表空间移至全局表空间,如以下示例所示:

ALTER TABLE table_name ENGINE=InnoDB;