Problemas conocidos y limitaciones de RDS para MariaDB - Amazon Relational Database Service

Problemas conocidos y limitaciones de RDS para MariaDB

Los siguientes elementos son problemas conocidos y limitaciones al usar RDS para MariaDB.

nota

Esta lista no es exhaustiva.

Límites de tamaño de archivo de MariaDB en Amazon RDS

Para las instancias de base de datos MariaDB, el tamaño máximo de una tabla es de 16 TB cuando se usan espacios de tablas de archivos por tabla InnoDB. Este límite también restringe el espacio de tabla del sistema a un tamaño máximo de 16 TB. Los espacios de tabla de archivo por tabla de InnoDB (en los que las tablas están cada una en su propio espacio de tabla) se habilitan de forma predeterminada para las instancias de base de datos de MariaDB. Este límite no está relacionado con el límite máximo de almacenamiento para las instancias de base de datos MariaDB. Para más información sobre el límite de almacenamiento, consulte Almacenamiento de instancias de base de datos de Amazon RDS.

El uso de los espacios de tabla file-per-table de InnoDB tiene pros y contras en función de la aplicación. Para determinar el mejor método para su aplicación, consulte File-Per-Table Tablespaces en la documentación de MySQL.

No es recomendable permitir que las tablas crezcan hasta el tamaño de archivo máximo. En general, es preferible dividir los datos en tablas más pequeñas, que pueden mejorar el desempeño y los tiempos de recuperación.

Una opción que se puede usar para dividir una tabla grande en tablas más pequeñas es la creación de particiones. Las particiones distribuyen las porciones de una tabla grande en archivos independientes en función de las reglas que se hayan especificado. Por ejemplo, si almacena las transacciones por fecha, puede crear reglas de partición que distribuyan las transacciones más antiguas entre distintos archivos por medio de la creación de particiones. Después, periódicamente, se pueden archivar los datos de transacciones históricos que no tengan que estar disponibles de forma inmediata para su aplicación. Para obtener información, consulte Partitioning en la documentación de MySQL.

Determinación del tamaño de todos los espacios de tablas de InnoDB
  • Utilice el comando SQL siguiente para determinar si alguna de las tablas es demasiado grande y por lo tanto es candidata para particiones.

    nota

    Para MariaDB 10.6 y versiones posteriores, esta consulta también devuelve el tamaño del espacio de tablas del sistema InnoDB.

    En las versiones de MariaDB anteriores a la 10.6 no es posible determinar el tamaño del espacio de tablas del sistema InnoDB consultando las tablas del sistema. Se recomienda una actualización a una versión posterior de Python.

    SELECT SPACE,NAME,ROUND((ALLOCATED_SIZE/1024/1024/1024), 2) as "Tablespace Size (GB)" FROM information_schema.INNODB_SYS_TABLESPACES ORDER BY 3 DESC;
Determinación del tamaño de las tablas de usuario distintas de InnoDB
  • Utilice el siguiente comando SQL para determinar si alguna de las tablas distintas de InnoDB es demasiado grande.

    SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH+DATA_FREE) / 1024 / 1024/ 1024), 2) As "Approximate size (GB)" FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema') and ENGINE<>'InnoDB';

Para habilitar espacios de tabla file-per-table de InnoDB

  • Establezca el parámetro innodb_file_per_table en 1 el grupo de parámetros para la instancia de base de datos.

Para deshabilitar los espacios de tabla file-per-table de InnoDB

  • Establezca el parámetro innodb_file_per_table en 0 el grupo de parámetros para la instancia de base de datos.

Para obtener más información acerca de la actualización de un grupo de parámetros, consulte Grupos de parámetros para Amazon RDS.

Cuando haya habilitado o deshabilitado los espacios de tabla file-per-table de InnoDB, puede ejecutar un comando ALTER TABLE. Puede utilizar este comando para mover una tabla desde el espacio de tabla global a su propio espacio de tabla. O bien, puede mover una tabla desde su propio espacio de tabla al espacio de tabla global. A continuación se muestra un ejemplo.

ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Palabra reservada InnoDB

InnoDB es una palabra reservada para RDS for MariaDB. No puede utilizar este nombre para una base de datos MariaDB.

Puertos personalizados

Amazon RDS bloquea las conexiones al puerto personalizado 33060 para el motor de MariaDB. Elija un puerto diferente para su motor de MariaDB.

Performance Insights

Los contadores de InnoDB no son visibles en Información de rendimiento para RDS para MariaDB 10.11 porque la comunidad de MariaDB ya no los admite.