Désactivation des index pour les insertions en masse dans InnoDB
Pour tenter d'optimiser les performances des insertions en masse dans InnoDB, on peut envisager de désactiver temporairement les index. Cependant, cette action déclenche un message d'avertissement indiquant l'incompatibilité de cette option avec InnoDB.
Alternatives à la désactivation de l'index pour les insertions en masse :
Pour contourner les limitations de la désactivation de l'index dans InnoDB, des approches alternatives existent :
-
Suspendre l'autocommit : La désactivation de l'autocommit (SET autocommit=0) permet de regrouper plusieurs insertions en une seule transaction, réduisant ainsi les frais généraux.
-
Désactiver les vérifications de clés uniques et étrangères : La désactivation temporaire des vérifications de clés uniques et étrangères (SET unique_checks=0; SET Foreign_key_checks=0;) élimine le besoin de recherches d'index lors des opérations d'insertion.
-
Insertion groupée à l'aide de LOAD DATA INFILE : La commande LOAD DATA INFILE contourne l'index, permettant le chargement direct des données dans la table.
Conseils supplémentaires pour accélérer le traitement groupé Insertions :
Au-delà de la désactivation de l'index, plusieurs techniques supplémentaires peuvent améliorer la vitesse d'insertion groupée :
-
Optimiser la définition de la table : Définir les colonnes avec les types de données appropriés et tailles, réduisant ainsi les conversions de données inutiles.
-
Réglage du pool de tampons : Assurez-vous d'une taille de pool de tampons suffisante pour accueillir l'intégralité des données de la table, empêchant ainsi les accès fréquents au disque.
-
Par lots Insertions : Regroupez plusieurs insertions dans une seule requête, réduisant ainsi les interactions serveur-client et améliorant l'efficacité.
-
Désactivez les déclencheurs et les procédures stockées : Suspendez tous les déclencheurs ou procédures stockées associés à la table , éliminant ainsi les frais de traitement supplémentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!