Ускорить конверсию форума - PullRequest
1 голос
/ 27 июля 2010

Я преобразую форум из myBB в IPBoard (преобразование выполняется с помощью сценария PHP), однако у меня более 4 миллионов сообщений, которые необходимо преобразовать, и это займет около 10 часов по текущему курсу.У меня в основном неограниченная оперативная память и процессор, я хочу знать, как я могу ускорить этот процесс?Есть ли способ, которым я могу выделить огромное количество памяти для этого одного процесса?Спасибо за любую помощь!

Ответы [ 3 ]

1 голос
/ 27 июля 2010

Вы не получите скрипт, который будет работать быстрее. Однако, выделив ему больше памяти, вы сможете делать больше сообщений за один раз. Измените memory_limit в вашем php.ini файле, чтобы изменить объем памяти, который он может использовать.

Возможно, вы сможете указать сценарию делать один форум за раз. Тогда вы можете запустить несколько копий скрипта одновременно. Это будет ограничено тем, как он взаимодействует с таблицей базы данных, и был ли сценарий написан, чтобы разрешить это, - это может сделать такие глупые вещи, как блокировка целевой таблицы или слишком долгое чтение исходной таблицы. В любом случае, вы вряд ли сможете запустить более трех или четырех одновременно без замедления всего процесса.

Возможно, будет возможно улучшить сценарий, но это будет тяжелой работой в течение нескольких дней, изучая внутреннюю часть форматов баз данных обоих форумов. Вы спрашивали на форумах для IPBoard? Может быть, у кого-то есть опыт в том, что вы пытаетесь сделать.

0 голосов
/ 27 июля 2010

Если вы говорите, что у вас есть файлы, которые уже конвертированы, вы должны посмотреть MySQL Load Data In FIle для импорта, если у вас есть доступ к MySQL Console.Это загрузит данные значительно быстрее, чем выполнение операторов SQL с помощью команды source.

Если у вас их нет в файлах, и вы выполняете их на лету, то я бы посоветовал сценарию конвертации записать данные в файл (установите ограничение времени на 0, чтобы он мог работать), а затем используйте эту команду загрузки данных для вставки / обновления данных.

0 голосов
/ 27 июля 2010

не уверен, как выполняется преобразование, но если вы импортируете файл sql, вы можете разделить его на несколько файлов и импортировать их одновременно. надеюсь, это поможет :)

...