Maison > Article > base de données > Une introduction détaillée à la façon dont MySQL optimise la vitesse d'insertion des enregistrements
Lors de l'insertion d'enregistrements, les principaux facteurs qui affectent la vitesse d'insertion sont l'index, la vérification de l'unicité, le nombre d'enregistrements insérés à la fois, etc. Selon ces situations, l'optimisation peut être effectuée séparément. Cette section présentera plusieurs méthodes pour optimiser la vitesse d'insertion des enregistrements. Jetons un coup d'œil avec l'éditeur ci-dessous
Lors de l'insertion d'enregistrements, les principaux facteurs qui affectent la vitesse d'insertion sont l'indexation, la vérification de l'unicité et le nombre d'enregistrements insérés en même temps. Selon ces situations, l'optimisation peut être effectuée séparément. Cette section présentera plusieurs méthodes pour optimiser la vitesse d'insertion des enregistrements.
1. Les méthodes d'optimisation courantes pour les tables du moteur MyISAM sont les suivantes :
1. Lors de l'insertion d'enregistrements dans une table non vide, MySQL indexera les enregistrements insérés en fonction de l'index de la table. Si vous insérez une grande quantité de données, l'indexation ralentira la vitesse d'insertion des enregistrements. Afin de résoudre cette situation, vous pouvez désactiver l'index avant d'insérer l'enregistrement et activer l'index après l'insertion des données. L'instruction pour désactiver l'index est : ALTER TABLE tb_name DISABLE KEYS; L'instruction pour réactiver l'index est : ALTER TABLE table_name ENABLE KEYS Pour l'importation en masse de données à partir de tables vides, cette opération n'est pas requise, car la table du moteur MyISAM ; est importé après l'importation des données indexées.
2. Désactiver la vérification d'unicité : Lorsque les données sont insérées, MySQL effectuera une vérification d'unicité sur l'enregistrement inséré. Cette vérification d'unicité ralentit également la vitesse d'insertion des enregistrements. Afin de réduire l'impact de cette situation sur la vitesse des requêtes, vous pouvez désactiver la vérification de l'unicité avant d'insérer des enregistrements, puis l'activer une fois les enregistrements insérés. L'instruction permettant de désactiver le contrôle d'unicité est : SET UNIQUE_CHECKS=0 ; l'instruction permettant d'activer le contrôle d'unicité est : SET UNIQUE_CHECKS=1;
Utilisez une instruction INSERT pour insérer plusieurs enregistrements. Tels que INSERT INTO table_name VALUES(....),(....),(....) 4 Utilisez LOAD DATA INFILE pour importer par lots lorsque vous en avez besoin. pour importer des données par lots Lorsque vous utilisez l'instruction LOAD DATA INFILE pour importer des données plus rapidement que l'instruction INSERT.
2. Pour les tables du moteur InnoDB, les méthodes d'optimisation courantes sont les suivantes :
1. Désactivez la vérification d'unicité.
Identique au moteur MyISAM, définissez cette valeur sur 1 après avoir importé les données via SET UNIQUE_CHECKS=0;. 2. Désactivez la vérification des clés étrangères.
Désactivez la requête de clé étrangère avant d'insérer des données et reprenez la vérification de la clé étrangère une fois l'insertion des données terminée. L'instruction pour désactiver la vérification des clés étrangères est : SET FOREIGN_KEY_CHECKS=0; L'instruction pour restaurer la vérification des clés étrangères est : SET FOREIGN_KEY_CHECKS=1; 3. Désactivez la soumission automatique.
Désactivez la soumission automatique des transactions avant d'insérer des données. Une fois l'importation des données terminée, effectuez l'opération de restauration de la soumission automatique. L'instruction permettant de désactiver la soumission automatique est la suivante : SET AUTOCOMMIT=0 ; Pour restaurer la soumission automatique, définissez simplement la valeur sur 1.
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!