inicio mail me! sindicaci;ón

Un script pout importer une grosse base de données mysql sans problème de timout

Attention, c’est un truc de codeurs ! ;)

Tout ceux qui doivent gérer des bases de données un tout petit peu grosses se sont déjà trouvés confrontés au problème du timout. Souvent, sur un hébergement mutualisé, le temps d’exécution maximum du script est réduit à 10 secondes, là où on a parfois besoin de vingt, trente secondes pour importer une base de données de plusieurs dizaines de méga octets (ou pour effectuer n’importer quelle autre tache).

C’est ce qui m’est arrivé la nuit dernière : damned, bloqué par un timout à 10 secondes ! Auparavant, je scindais la requête en plusieurs petites requêtes, mais là je me suis résolu à investir quelques minutes en recherches et expérimentations, et je suis tombé sur un script de toute beauté : Bigdump. Le principe est limpide : on upload le script PHP sur son serveur, ainsi qu’un fichier texte qui contient les requêtes SQL à exécuter. On lance le script, et hop, il se charge tout seul d’exécuter les requêtes sql en plusieurs étapes… C’est magique, et c’est surtout super pratique !

Voici la marche à suivre, en sept étapes :

1. Télécharger BigDump : http://www.ozerov.de/bigdump.php.

2. Editer le fichier de configuration pour renseigner les informations de connexion la base de donnes. On parle de la base de donnes sur laquelle on va importer les donnes. Ne pas oublier de renseigner la variable “db_connection_char_set”, lui donner la valeur ‘utf8′.

3. Uploader ce fichier quelque part sur votre site. Par exemple : http://www.example.com/bigdump/bigdump.php

4. Exporter depuis phpMyAdmin les tables que vous voulez importer sur l’autre base. Choisir le format utf-8 (si le menu déroulant n’est pas proposé, c’est généralement qu’utf8 est choisi par défaut. Dans la section “Données”, sélectionnez “Insertion complètes” et “Encoder les champs binaires en hexadécimal”. Vous pouvez tout mettre dans un seul fichier (structure et donnes). Enregistrer le fichier .sql sur votre disque dur.

5. Uploader le fichier .sql dans le mme répertoire que le fichier bigdump.php. On peut soit passer par un FTP, soit par un formulaire qui s’affiche sur la page.

6. Charger la page http://www.example.com/bigdump/bigdump.php.

7. Cliquer sur “Start Import” en face du fichier que vous souhaitez importer, et c’est parti !

Le script exécute toutes les requêtes, en rechargeant plusieurs fois la page avec du javascript pour ne pas aller au delà du timout (il faut donc activer javascript).

Merci BigDump !


Laisser un commentaire