используйте моменты описанные в статье, линк на которую дал
un1t
но хотелось бы добавить что можно генерацию данных вынести за пределы php на уровень базы, это так же сэкономит время за счет отсутствия обмена данными между php и базой. К примеру вынести генерацию в хранимую процедуру:
CREATE PROCEDURE `make_data`()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i < 500000 DO
<тут INSERT запрос>
SET i = i + 1;
END WHILE;
END
ну и соответственно вызвать ее в том же phpMyAdmin:
CALL make_data();
ну и не забывайте про множественный инсерт, он так же даст выигрыш во времени
P.S. на мой взгляд лучше использовать готовые утилиты для генерации данных