У меня php скрипт выполняет цикл while, который повторяется 10 000 раз и каждый раз выполняет по 1 INSERT в базу данных.
В итоге время выполнения скрипта почти до минуты доходит.. можно ли как-то ускорить?
Можно запихнуть все это дело в транзакцию, так индексы пересчитаются 1 раз.
Правда я бы рекомендовал пакетную вставку в цыкле. В смысле набить запрос на N вставок одним insert, выполнить, далее еще раз наполнить и выполнить и т.д.
Уложите данные в CSV (при помощи fopen(), fputcsv()), а затем воспользуйтесь LOAD DATA INFILE (для MySQL) или BULK INSERT (для SQL Server). Будет ультра быстро, поскольку описанные выше инструкции были созданы именно для массовой загрузки.
я делаю запрос к Api контакта и в ответ получаю 25 массивов. Каждый массив может включать в себя до 500 записей (ид, имя, город).
Каждую эту запись мне и необходимо занести к себе в mysql базу. Как это сделать пакетно?