Zależy to od silnika - MyIsam i InnoDb zachowują się inaczej.
Dla tabel MyIsam, jeśli rekord już istnieje w tabeli (nawet jeśli nie jest jeszcze zatwierdzony), regularne INSERT tego samego rekordu ( ten sam unikalny klucz) w drugiej sesji zgłasza błąd zduplikowanego klucza - więc INSERT IGNORE po prostu zignoruje błąd i przejdzie dalej.
W tabeli InnoDB, jeśli rekord nie jest zablokowany, zwykłe INSERT natychmiast zgłoś błąd zduplikowanego klucza (INSERT IGNORE pominie błąd i przejdzie dalej).
Ale jeśli rekord jest zablokowany przez inną sesję (na przykład rekord jest wstawiony, ale jeszcze nie zatwierdzony, lub rekord jest zablokowany przez UPDATE lub DELETE lub SELECT FOR UPDATE), polecenie INSERT "zawiesi się" i będzie czekać, aż inna sesja usunie blokadę (przez COMMIT lub ROLLBACK). Następnie, jeśli rekord nadal istnieje po usunięciu blokady, INSERT zgłosi błąd (INSERT IGNORE zignoruje błąd), ale jeśli rekord nie istnieje, INSERT doda ten rekord do tabeli.
Słowo kluczowe IGNORE mówi po prostu „w przypadku jakiegokolwiek błędu po prostu go zignoruj i kontynuuj”, ale nie wpływa to na zachowanie blokowania.