insert ignore er den bedre metode af flere grunde.
Med hensyn til ydeevne bliver kun én forespørgsel kompileret og udført i stedet for to. Dette sparer omkostningerne ved at flytte ting ind og ud af databasen.
Med hensyn til vedligeholdelse er kun én forespørgsel mere vedligeholdelsesdygtig, fordi logikken er samlet ét sted. Hvis du tilføjede en where klausul, for eksempel, ville du være mere tilbøjelig til at gå glip af at tilføje den i to separate forespørgsler.
Med hensyn til nøjagtighed bør kun én forespørgsel ikke have nogen (eller i det mindste mange færre) muligheder for løbsforhold. Hvis en række er indsat mellem select og insert , så får du stadig en fejl.
Men bedre end insert ignore er insert . . . on duplicate key update . Sidstnævnte undgår kun fejlen for duplikeringsproblemer. insert ignore ignorerer muligvis fejl, som du faktisk bekymrer dig om.
I øvrigt bør du alligevel tjekke for fejl fra erklæringen.