Le insert ignore
est la meilleure méthode, pour plusieurs raisons.
En termes de performances, une seule requête est compilée et exécutée, au lieu de deux. Cela évite les frais généraux liés au déplacement d'éléments dans et hors de la base de données.
En termes de maintenance, n'avoir qu'une seule requête est plus facile à gérer, car toute la logique est au même endroit. Si vous avez ajouté un where
clause, par exemple, vous seriez plus susceptible de ne pas l'ajouter dans deux requêtes distinctes.
En termes de précision, une seule requête ne devrait pas avoir (ou au moins beaucoup moins) d'opportunités pour les conditions de concurrence. Si une ligne est insérée entre le select
et insert
, vous obtiendrez toujours une erreur.
Cependant, mieux que insert ignore
est insert . . . on duplicate key update
. Ce dernier évite uniquement l'erreur pour les problèmes de duplication. insert ignore
ignorez peut-être des erreurs qui vous intéressent réellement.
Soit dit en passant, vous devriez de toute façon vérifier les erreurs de la déclaration.