MySQL foreign key cascade operations finally hit the binary log
Le problème historique est que les clés étrangères étaient gérées par le moteur de stockage InnoDB et que les cascades restaient invisibles dans le binlog, compliquant la réplication et les pipelines CDC. MySQL 9.6 déplace l’application et l’exécution des cascades au niveau du moteur SQL, ce qui permet au binlog de refléter l’ensemble des modifications. Désormais, une suppression sur la table parente produit des suppressions des tables enfants et ces opérations deviennent des événements DML distincts dans le binlog, et non plus un seul DELETE. Pour faciliter la migration, la variable innodb_native_foreign_keys est une variable de démarrage en lecture seule et vaut FALSE par défaut; la mettre à TRUE permet de revenir à l’ancienne gestion, avec une suppression attendue dans une version future. Les performances restent proches de l’approche précédente et l’architecture ouvre la voie à des évolutions comme des déclencheurs sur les cascades et un meilleur support pour d’autres moteurs de stockage.