Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Por qué mi instancia de base de datos de Amazon RDS para MySQL utiliza más almacenamiento del esperado?
Quiero saber por qué mi instancia de base de datos de Amazon Relational Database Service (Amazon RDS) para MySQL ocupa más espacio del que esperaba. También quiero optimizar el almacenamiento en disco.
Resolución
Para supervisar el espacio de almacenamiento disponible para una instancia de base de datos de RDS, puedes utilizar la métrica FreeStorageSpace de Amazon CloudWatch. Sin embargo, la métrica FreeStorageSpace no muestra qué usa el almacenamiento en la instancia de base de datos. Para determinar qué es lo que está consumiendo tu almacenamiento y recuperar espacio de almacenamiento, usa los siguientes métodos.
Ejecución de OPTIMIZE TABLE
Las tablas solo usan espacio que no está en uso activo. Sin embargo, Amazon RDS sigue asignando espacio a las tablas. Si has activado innodb_file_per_table, puedes ejecutar el comando OPTIMIZE TABLE para recuperar el espacio. Para obtener más información, consulta Instrucción OPTIMIZE TABLE en el sitio web de MySQL.
Puedes usar OPTIMIZE TABLE para las tablas InnoDB, MyISAM y ARCHIVE. OPTIMIZE TABLE funciona cuando creas la tabla en un espacio de tablas independiente, de acuerdo con la configuración predeterminada de innodb_file_per_table. Para obtener más información, consulta File-per-table tablespaces en el sitio web de MySQL.
Si bien Amazon RDS acepta el comando OPTIMIZE TABLE, en realidad ejecuta el comando ALTER TABLE...FORCE en su lugar. Cuando esto ocurra, recibirás un mensaje de advertencia similar al siguiente:
«La tabla no admite optimizar, sino recrear y analizar».
Actualiza las estadísticas y, a continuación, ejecuta la siguiente consulta de information_schema.tables para estimar el uso del almacenamiento en función de las estadísticas:
SELECT table_name, data_length, max_data_length, index_length, data_free FROM information_schema.tables WHERE table_schema='schema_name' ;
Nota: En la consulta anterior, agrega los valores para tu caso de uso.
La columna data_free muestra la cantidad de espacio libre asignado a una tabla que no está en uso activo.
Reducción del almacenamiento de la tabla de aplicaciones
Para ver cuánto almacenamiento utilizan las tablas de la aplicación en la instancia de base de datos MySQL de RDS, ejecuta la siguiente consulta:
SELECT TABLESPACE_NAME, ROUND(DATA_FREE/EXTENT_SIZE,0) FREE_DATA_MB, FREE_EXTENTS FREE_EXTENTS_MB, TOTAL_EXTENTS TOTAL_EXTENTS_MB FROM INFORMATION_SCHEMA.FILES;
Para localizar la tabla de aplicaciones más grande de la instancia de base de datos MySQL de RDS, ejecuta la siguiente consulta:
SELECT TABLESPACE_NAME, ROUND(DATA_FREE/EXTENT_SIZE,0) FREE_DATA_MB, FREE_EXTENTS FREE_EXTENTS_MB, TOTAL_EXTENTS TOTAL_EXTENTS_MB FROM INFORMATION_SCHEMA.FILES ORDER BY TOTAL_EXTENTS_MB DESC;
Nota: Si una base de datos incluye tablas con columnas de longitud variable de más de 768 bytes, no puedes calcular el almacenamiento individual que utilizan la base de datos y la tabla. Esta limitación incluye los comandos BLOB, TEXT, VARCHAR y VARBINARY.
Reducción del almacenamiento de registros binarios
Si agregas una réplica de lectura a una instancia de Amazon RDS, el registro binario de la instancia de origen utiliza almacenamiento adicional. Para determinar cuánto espacio de almacenamiento utiliza el registro binario de la instancia de origen, comprueba la métrica BinLogDiskUsage de CloudWatch. Si el registro binario utiliza cada vez más almacenamiento, es posible que tengas que sincronizar las réplicas de lectura.
Reducción o desactivación del registro general y el almacenamiento del registro de consultas lentas
Cuando desactivas los parámetros de registro general y registro de consultas lentas, tu instancia comienza a almacenar los registros y las copias de seguridad de los registros. Para rotar los archivos y controlar el uso del disco, consulta mysql.rds_rotate_general_log y mysql.rds_rotate_slow_log.
Nota: Cuando no estés solucionando problemas, se recomienda desactivar los registros generales y de consultas lentas.
Administración o reducción del tamaño del espacio de tablas del sistema InnoDB
El espacio de tablas del sistema comienza con 10 MB de espacio y contiene el diccionario de datos de InnoDB y el espacio para deshacer. Tras asignar el espacio, el archivo ocupa al menos 10 MB y puedes utilizar más espacio de almacenamiento disponible.
De forma predeterminada, Amazon RDS establece innodb_file_per_table en 1 para que la base de datos almacene los datos de cada espacio de tablas en su propio archivo .ibd. Para recuperar el espacio reutilizable para las tablas relacionadas, utiliza OPTIMIZE TABLE para cambiar el tamaño de cada archivo de espacio de tablas. O bien, puedes eliminar una tabla.
Si estableces innodb_file_per_table en 0, Amazon RDS asigna todas las tablas al espacio de tablas del sistema. Si eliminas tablas o índices, o eliminas o trunca los datos de las tablas asignadas en el sistema, el espacio de tablas marca el espacio como reutilizable. Sin embargo, innodb_file_per_table no libera espacio para el sistema de archivos.
No puedes reducir el espacio de tablas del sistema en la instancia en la que está ubicado. En su lugar, exporta los datos de la base de datos actual y, a continuación, importa los datos a una nueva instancia. Para reducir el tiempo de inactividad, configura la nueva instancia de MySQL como una réplica de la instancia de Amazon RDS de origen. Tras sincronizar la réplica con la instancia de Amazon RDS de origen, cambia a la nueva instancia.
Nota: Cuando restauras desde una instantánea o creas una réplica de lectura, no recuperas espacio del espacio de tablas del sistema. Ambos métodos utilizan una instantánea del volumen de almacenamiento de la instancia de origen que contiene el espacio de tablas del sistema.
Información relacionada
La instancia de base de datos de Amazon RDS se está quedando sin espacio de almacenamiento
Modificación de una instancia de base de datos de Amazon RDS
¿Cómo puedo solucionar el error «MySQL HA_ERR_RECORD_FILE_FULL» al utilizar Amazon RDS para MySQL?
- Idioma
- Español

Contenido relevante
- preguntada hace un año
- preguntada hace 4 meses
- preguntada hace 7 meses
- preguntada hace 4 meses