Rzeczywiście łatwo sprawdzić jak duży ruch ma konkurencja, ja testuje rozwiązanie z trigerami i losowym 5-cio cyfrowym numerem, będę wdzięczny za przyłączenie się do testów. To mój trigger:
DELIMITER //
Create TRIGGER zamowienie_newid before INSERT ON prefix_orders FOR EACH ROW
BEGIN
SET NEW.id_order=CONCAT(10+FLOOR(RAND()*89),(100+FLOOR(RAND()*899)));
Select COUNT(*) INTO @ile from prefix_orders where id_order=New.id_order;
WHILE @ile> 0 DO
SET NEW.id_order=CONCAT(10+FLOOR(RAND()*89),(100+FLOOR(RAND()*899)));
Select COUNT(*) INTO @ile from prefix_orders where id_order=New.id_order;
END WHILE;
END
//
DELIMITER ;
dla niewtajemniczonych należy w phpmyadminie wykonać powyższy kod/zapytanie, a potem sprawdzić na testowych zamówieniach czy coś się nie sypie, u mnie póki co śmiga, ale testy innych mile widziane.