Tous les produits
Search
Centre de documentation

ApsaraDB RDS:DDL plus rapide

Dernière mise à jour :Aug 19, 2026

Cette rubrique décrit la fonctionnalité Faster DDL, qui propose un mécanisme optimisé de gestion du buffer pool. Ce mécanisme réduit l'impact des opérations de langage de définition de données (DDL) et augmente le nombre d'opérations DDL simultanées autorisées.

Prérequis

Votre instance RDS exécute l'une des versions MySQL suivantes :

Contexte

Les opérations DDL sont courantes sur les instances RDS. Lors de l'utilisation de votre instance RDS, vous pouvez rencontrer des problèmes liés aux opérations DDL. Par exemple, les situations suivantes peuvent se produire :

  • Lorsque vous ajoutez des index, pourquoi observez-vous une instabilité des performances qui interrompt les opérations de lecture et d'écriture sur votre instance RDS ?

  • Pourquoi l'exécution d'une opération DDL sur une table de moins de 1 Go prend-elle plus de 10 minutes ?

  • Lorsqu'une connexion générant des tables temporaires est fermée, pourquoi constatez-vous une instabilité des performances ?

L'équipe du moteur de base de données d'ApsaraDB for RDS a réalisé des analyses approfondies et des tests intensifs pour identifier la cause de ces problèmes. Sur la base des résultats obtenus, l'équipe a mis en évidence des défauts dans la logique de maintenance du cache utilisée pour gérer les opérations DDL. Pour corriger ces problèmes, l'équipe a développé la fonctionnalité Faster DDL. Le mécanisme optimisé de gestion du buffer pool fourni par cette fonctionnalité réduit la contention des verrous déclenchée par les opérations DDL. Lorsque votre instance RDS traite une charge de travail normale, cela garantit le maintien des performances de l'instance pendant les opérations DDL.

Activer Faster DDL

Définissez le paramètre loose_innodb_rds_faster_ddl sur ON dans la console ApsaraDB for RDS pour activer la fonctionnalité Faster DDL. Pour plus d'informations, consultez la rubrique Modifier les paramètres de l'instance.

Test avec des opérations DDL

  • Scénario de test

    Utilisez l'algorithme in-place pour effectuer des opérations DDL en ligne en exécutant les instructions suivantes, prises en charge par MySQL 8.0 : CREATE INDEX et OPTIMIZE TABLE. L'instruction CREATE INDEX crée un index sur une table sans nécessiter la reconstruction de celle-ci. L'instruction OPTIMIZE TABLE crée un index sur une table en nécessitant la reconstruction de celle-ci.

    Opération Instantané In-place Reconstruit la table Autorise les opérations DML simultanées Modifie uniquement les métadonnées
    CREATE INDEX Non Oui Non Oui Non
    OPTIMIZE TABLE Non Oui Oui Oui Non
  • Instance de test

    L'instance RDS utilisée pour le test exécute MySQL 8.0. Elle dispose de 8 cœurs CPU et de 64 Go de mémoire. La taille de la table sur laquelle vous effectuez les opérations DDL est de 600 Mo.

  • Procédure de test

    Utilisez SysBench pour effectuer un test de charge. Durant ce test, effectuez des opérations DDL en ligne et comparez les résultats.

  • Résultat du test

    Opération Durée d'exécution moyenne (avec Faster DDL désactivé) Durée d'exécution moyenne (avec Faster DDL activé) Facteur d'amélioration des performances
    CREATE INDEX 56 secondes 4,9 secondes 11,4
    OPTIMIZE TABLE 220 secondes 17 secondes 12,9
  • Résumé du test

    La fonctionnalité Faster DDL permet à ApsaraDB RDS for MySQL avec AliSQL de réduire la durée d'exécution d'une opération DDL de plus de 90 % par rapport à MySQL Community Edition.

Test avec des tables temporaires

Les tables temporaires sont courantes dans MySQL. Par exemple, le système crée des tables temporaires utilisées pour interroger les tables de la base de données information_schema ou pour accélérer l'exécution d'instructions SQL complexes. Lorsqu'un thread se termine, toutes les tables temporaires associées sont supprimées. Il s'agit d'un type spécifique d'opération DDL qui provoque une instabilité des performances sur votre instance RDS. Pour plus d'informations, consultez la page Temp ibt tablespace truncation at disconnection stuck InnoDB under large BP.

  • Instance de test

    L'instance RDS utilisée pour le test exécute MySQL 8.0. Elle dispose de 8 cœurs CPU et de 64 Go de mémoire.

  • Procédure de test

    Utilisez tpcc-mysql pour effectuer un test de charge. Durant ce test, exécutez des requêtes afin de vous assurer que le buffer pool atteint une capacité proche de sa limite maximale. Ensuite, initiez des requêtes monothread via des connexions éphémères pour générer des tables temporaires.

  • Résultat du test

    Élément de comparaison Opérations DDL non incluses Faster DDL activé Faster DDL désactivé
    Transactions par seconde (TPS) 42 000 40 000 < 10 000

    La figure suivante présente les données de performance au niveau de la seconde obtenues lors du test de charge. Les parties mises en évidence en rouge indiquent les TPS pris en charge par l'instance RDS lorsque la fonctionnalité Faster DDL est désactivée.

    TPS

  • Résumé du test

    Chaque fois qu'un thread générant des tables temporaires se termine, MySQL natif provoque une forte instabilité des performances. Cette instabilité réduit les TPS de plus de 70 %. Une fois la fonctionnalité Faster DDL activée, la baisse des TPS est ramenée à 5 %.

Effet de l'optimisation

La fonctionnalité Faster DDL prend en charge MySQL 5.6, 5,7 et 8,0. Toutefois, les opérations DDL prises en charge peuvent varier selon la version MySQL sélectionnée.

Catégorie Opération DDL MySQL 5.6 MySQL 5.7 MySQL 8.0
DDL in-place Pour plus d'informations, consultez les pages Opérations DDL en ligne de MySQL 8.0 et Opérations DDL en ligne de MySQL 5.7. Non Oui Oui
Gestion des tablespaces Active ou désactive le chiffrement des tablespaces. Non Oui Oui
Libère ou supprime un tablespace. Non Oui Oui
Ignore un tablespace. Oui Oui Oui
Suppression de table Libère ou supprime une table. Oui Oui Oui
Opération d'annulation Libère ou supprime un tablespace d'annulation. Non Non Oui
Actualisation de table Actualise une table et ses pages sales. Oui Oui Oui

Défauts corrigés par Faster DDL

La fonctionnalité Faster DDL corrige les défauts suivants :