Использование PHP (ограничение по времени 1900 секунд и ограничение памяти более 1 ГБ) и MySQL (используя PEAR :: MDB2) на этом ...
Я пытаюсь создать поисковую систему, которая будет загружать данные из каналов сайта в базе данных mysql. Некоторые сайты имеют довольно большие каналы с большим количеством данных (например, более 80 000 записей в одном файле). Некоторая проверка данных для каждой из записей выполняется перед вставкой записи в базу данных (проверка данных, которая может также вставить или обновить таблицу mysql).
Моя проблема в том, что многие из вас, возможно, уже поняли ... время! Для каждой записи в ленте есть более 20 проверок, а для ленты с, например: 10.000 записей, может быть> 50.000 вставок в базу данных.
Я пытался сделать это двумя способами:
- Прочитать ленту и сохранить данные в массиве, а затем перебрать массив и выполнить проверку и вставку данных. (Это оказывается самым быстрым из всех)
- Прочитайте ленту и сделайте проверку данных построчно и вставьте.
База данных использует индексы для каждого поля, которое постоянно запрашивается. PHP-код настроен без дополнительных переменных, а SQL-запросы - это простые операторы выбора, обновления и вставки.
Установка ограничений по времени выше, и память не является проблемой. Проблема в том, что я хочу, чтобы эта операция была быстрее.
Итак, мой вопрос:
Как я могу ускорить процесс импорта данных канала? Есть ли какие-либо другие советы, которые я мог бы не знать?