Todos los productos
Search
Centro de documentos

ApsaraDB RDS:DDL más rápido

Última actualización: Sep 03, 2026

Este tema describe la función DDL más rápido, que proporciona un mecanismo optimizado de gestión del buffer pool. Este mecanismo permite reducir el impacto de las operaciones de lenguaje de definición de datos (DDL) y aumentar el número de operaciones DDL simultáneas permitidas.

Requisitos previos

Su instancia RDS ejecuta una de las siguientes versiones de MySQL:

Contexto

Las operaciones DDL son comunes en las instancias RDS. Al usar su instancia RDS, es posible que encuentre problemas relacionados con estas operaciones. Por ejemplo, podría enfrentar las siguientes situaciones:

  • ¿Por qué se produce una fluctuación de rendimiento al agregar índices que interrumpe las operaciones de lectura y escritura en su instancia RDS?

  • ¿Por qué una operación DDL en una tabla de menos de 1 GB tarda más de 10 minutos en completarse?

  • ¿Por qué ocurre una fluctuación de rendimiento cuando se cierra una conexión que genera tablas temporales?

El equipo del motor de base de datos de ApsaraDB for RDS ha realizado análisis exhaustivos y pruebas intensivas para identificar estos problemas. Con base en los resultados, el equipo detectó defectos en la lógica de mantenimiento de caché que gestiona las operaciones DDL. Para solucionar estos problemas, se desarrolló la función DDL más rápido. El mecanismo optimizado de gestión del buffer pool que ofrece esta función reduce la contención de bloqueos desencadenada por las operaciones DDL. Esto garantiza el rendimiento de su instancia RDS durante las operaciones DDL cuando procesa una carga de trabajo normal.

Habilitar DDL más rápido

Habilite la función DDL más rápido al configurar el parámetro loose_innodb_rds_faster_ddl como ON en la consola de ApsaraDB for RDS. Para obtener más información, consulte Modify instance parameters.

Pruebas con operaciones DDL

  • Escenario de prueba

    Use el algoritmo in-place para ejecutar operaciones DDL en línea mediante las siguientes instrucciones compatibles con MySQL 8.0: CREATE INDEX y OPTIMIZE TABLE. La instrucción CREATE INDEX crea un índice en una tabla sin necesidad de reconstruirla. La instrucción OPTIMIZE TABLE crea un índice en una tabla y requiere su reconstrucción.

    Operación

    Instant

    In-place

    Reconstruye la tabla

    Permite operaciones DML simultáneas

    Solo modifica metadatos

    CREATE INDEX

    No

    Yes

    No

    Yes

    No

    OPTIMIZE TABLE

    No

    Yes

    Yes

    Yes

    No

  • Instancia de prueba

    La instancia RDS usada para la prueba ejecuta MySQL 8.0. Cuenta con 8 núcleos de CPU y 64 GB de memoria. La tabla sobre la que se ejecutan las operaciones DDL tiene un tamaño de 600 MB.

  • Procedimiento de prueba

    Use SysBench para realizar una prueba de estrés. En esta prueba, ejecute operaciones DDL en línea y compare los resultados obtenidos.

  • Resultado de la prueba

    Operación

    Duración promedio de ejecución (sin DDL más rápido)

    Duración promedio de ejecución (con DDL más rápido)

    Factor de mejora de rendimiento

    CREATE INDEX

    56 segundos

    4.9 segundos

    11.4

    OPTIMIZE TABLE

    220 segundos

    17 segundos

    12.9

  • Resumen de la prueba

    La función DDL más rápido permite que ApsaraDB RDS for MySQL con AliSQL reduzca la duración de ejecución de una operación DDL en más del 90% en comparación con MySQL Community Edition.

Pruebas con tablas temporales

Las tablas temporales son comunes en MySQL. Por ejemplo, el sistema crea tablas temporales para consultar tablas de la base de datos information_schema o para acelerar la ejecución de instrucciones SQL complejas. Cuando un hilo finaliza, se eliminan todas las tablas temporales asociadas. Esto constituye un tipo específico de operación DDL que provoca fluctuaciones de rendimiento en su instancia RDS. Para obtener más información, consulte Temp ibt tablespace truncation at disconnection stuck InnoDB under large BP.

  • Instancia de prueba

    La instancia RDS usada para la prueba ejecuta MySQL 8.0. Cuenta con 8 núcleos de CPU y 64 GB de memoria.

  • Procedimiento de prueba

    Use tpcc-mysql para realizar una prueba de estrés. Durante la prueba, ejecute consultas para asegurar que el buffer pool alcance casi su capacidad máxima. Posteriormente, inicie solicitudes de un solo hilo a través de conexiones de corta duración para generar tablas temporales.

  • Resultado de la prueba

    Elemento de comparación

    Sin operaciones DDL

    Con DDL más rápido habilitado

    Con DDL más rápido deshabilitado

    Transacciones por segundo (TPS)

    42,000

    40,000

    < 10,000

    La siguiente figura muestra los datos de rendimiento por segundo obtenidos de la prueba de estrés. Las partes resaltadas en rojo indican las TPS que admite la instancia RDS cuando la función DDL más rápido está deshabilitada.

    TPS

  • Resumen de la prueba

    Cada vez que finaliza un hilo que genera tablas temporales, MySQL nativo provoca una fluctuación severa de rendimiento. Esta fluctuación reduce las TPS en más del 70%. Tras habilitar la función DDL más rápido, la disminución de TPS se reduce al 5%.

Efecto de la optimización

La función DDL más rápido es compatible con MySQL 5.6, 5.7 y 8.0. Sin embargo, las operaciones DDL admitidas pueden variar según la versión de MySQL seleccionada.

Categoría Operación DDL MySQL 5.6 MySQL 5.7 MySQL 8.0
DDL in-place Para obtener más información, consulte MySQL 8.0 Online DDL Operations y MySQL 5.7 Online DDL Operations. No Yes Yes
Gestión de tablespaces Habilita o deshabilita el cifrado del tablespace. No Yes Yes
Libera o elimina un tablespace. No Yes Yes
Descarta un tablespace. Yes Yes Yes
Eliminación de tablas Libera o elimina una tabla. Yes Yes Yes
Operación Undo Libera o elimina un tablespace de undo. No No Yes
Actualización de tabla Actualiza una tabla y sus páginas sucias. Yes Yes Yes

Defectos corregidos por DDL más rápido

La función DDL más rápido corrige los siguientes defectos: