2010-07-26 20 views
1

Je convertis un forum de myBB à IPBoard (la conversion est faite par un script PHP), mais j'ai plus de 4 millions de messages qui doivent être convertis, et il faudra environ 10 heures à la taux actuel. J'ai essentiellement une RAM et un processeur illimités, ce que je veux savoir, c'est comment puis-je accélérer ce processus? Y a-t-il un moyen d'allouer une énorme quantité de mémoire à ce processus? Merci pour toute aide!Accélérer la conversion du forum

Répondre

0

Vous ne savez pas comment la conversion est effectuée, mais si vous importez un fichier SQL, vous pouvez le diviser en plusieurs fichiers et les importer en même temps. j'espère que ça aide :)

+0

La conversion est effectuée via un script PHP qui convertit 1500 messages à la fois. – YCMaker

0

Si vous dites que vous avez déjà converti le (s) fichier (s), vous devriez regarder dans MySQL Load Data In FIle pour l'importer, étant donné que vous avez accès à la console MySQL. Cela chargera les données considérablement plus rapidement que l'exécution des instructions SQL via la commande source. Si vous ne les avez pas dans les fichiers et que vous les faites à la volée, je suggère que le script de conversion écrive les données dans un fichier (définissez la limite de temps à 0 pour permettre son exécution) et utilisez ensuite cette commande load data pour insérer/mettre à jour les données.

+0

Malheureusement, la conversion se fait via un script PHP; Fondamentalement, je veux savoir s'il existe un moyen de rendre le script plus rapide. – YCMaker

+1

En plus de stocker toute la conversion dans un fichier, puis de charger des données, je ne pense pas. Mais en publiant le script, nous pourrons peut-être aider à l'optimiser/nous assurer qu'il est aussi optimal que possible. Mais l'exécution de plusieurs requêtes simples sur une base de données MySQL est généralement lente, le fait de pouvoir entrer via des insertions étendues ou de charger via un fichier a tendance à être beaucoup plus rapide. –

1

Vous n'obtiendrez pas de script plus rapide. En lui donnant plus de mémoire, vous pourrez peut-être faire plus de messages en même temps. Modifiez memory_limit dans votre fichier php.ini pour modifier la quantité de mémoire qu'il peut utiliser.

Vous pourriez indiquer au script de faire un forum à la fois. Ensuite, vous pouvez exécuter plusieurs copies du script à la fois. Cela sera limité par la façon dont il parle à la table de la base de données et si le script a été écrit pour permettre cela - il pourrait faire des choses stupides comme verrouiller la table cible ou faire une lecture incroyablement longue sur la table source. Dans tous les cas, il est peu probable que plus de trois ou quatre courent à la fois sans que tout ralentisse, de toute façon.

Il pourrait être possible d'améliorer le script, mais ce serait un dur travail de plusieurs jours à apprendre l'intérieur des deux formats de base de données des forums. Avez-vous demandé sur les forums pour IPBoard? Peut-être que quelqu'un a de l'expérience dans ce que vous essayez de faire.