Archives par mot-clé : Import

Import/Export MySQL en ligne de commandes

Publié dans SQL | Laisser un commentaire

Dans un précédent billet où j’expliquais mes déboires avec les grosses bases de données (on y trouvait aussi des conseils pour ne pas s’arracher les cheveux), j’ai expliqué comment importer une base de données MySQL à partir d’un fichier SQL en ligne de commandes grâce à source ou mysql. Aujourd’hui, j’ai découvert ce que je cherchais depuis pas mal de temps : exporter une base de données MySQL dans un fichier SQL en ligne de commandes, grâce à mysqldump. !

Importer un fichier SQL en ligne de commandes

J’ai une table de 3 millions de tuples (très très grosses quoi), que je souhaite importer dans ma base de données. Pour se faire, j’ai un fichier SQL assez volumineux contenant les requêtes d’insertions qui vont bien. Utiliser PhpMyAdmin serait long et il y a des risques que cela ne fonctionne pas si le fichier est trop gros. La solution consiste à utiliser des lignes de commandes, comme ça, pas de risques d’arrêts inopinés (ou presque) et c’est vraiment plus rapide.
Continuer la lecture

Comment importer une grosse base de données

Publié dans SQL | Un commentaire

Ce billet aurait aussi pu se nommer « Vive la ligne de commandes ! ».
Je pense arriver au bout de mes peines avec ma grosse tables de 3 millions de tuples (qui n’en fait d’ailleurs toujours pas 3 millions, alors j’espère que ça tiendra le coup quand tous les tuples seront là), et j’ai notamment pas mal galéré pour la transférer d’une base de données à une autre. (local -> serveur de développement) Si on utilise PHP, ou PhpMyAdmin, pour transférer sa BDD, on se retrouve vite avec de très long temps d’attente et avec une machine qui rame jusqu’à la mort. Quelques idées pour survivre entier à ce calvaire :
sql

  • Préférer le transfert à l’aide de fichiers. Car le copier/coller de requêtes fonctionnent pour de petites tables, mais ça fait très vite ramer votre machine de course pour de grosses tables. Il suffit d’exporter les tables de son choix via PhpMyAdmin (à l’accueil d’une base > exporter : pour exporter les tables de son choix. A l’accueil d’une table > exporter : pour exporter directement la table en question), puis dans les importer via PhpMyAdmin, ou en ligne de commandes. Il vaut mieux éviter de cocher la case « Insertion Complète » qui créé une seule requête INSERT INTO table (val1, val2) VALUES ('blabla', 'bloublou'), ('blibli', 'bleble'), ..., ('blublu', 'bloblo'); ce qui peut être un peu trop lourd. Mieux vaut créer autant de requêtes qu’il y a d’insertions dans ce cas. (le mieux serait de faire une requête pour une trentaine d’insertions, c’est vraiment plus rapide, mais cela oblige à coder tout ça soit même. Edit: apparemment, il faut choisir « Insertions Etentdues ».)
  • Préférer l’utilisation des lignes de commandes. Pour plusieurs raisons : plus de problèmes avec les timeout de MySQL ou de PHP puisqu’on effectue une commande à la fois. (sauf si on commande est trop lourde. Dans le cas d’une insertion complète par exemple), on contrôle réellement tout ce qui se passe en temps réel et on peut réellement tout arrêter en temps réel. (suffit de fermer le terminal quoi !), on ne passe par aucun intermédiaire et c’est donc vraiment plus rapide.

Continuer la lecture