|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : mai 2002 Messages : 417 ![]() |
Je voudrais créer une archive d'une BD.
Pour copier les enregistrement de BD1 vers BD2: boucle - SELECT BD1 - INSERT INTO BD2 - DELETE BD1 ou il y a une solution plus simple ? |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 714 ![]() |
En fait pour MySQL, si tu as accès aux fichiers, tu peux directement sauvegarder la structure de fichiers correspondants à ta base.
Renseigne toi dans la doc de la version de ton MySQL sur les moyens de BACKUP qu'ils proposent
__________________
K |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : mai 2002 Messages : 417 ![]() |
Ce n'est pas une sauvegarde de la BD que je veux faire.
C'est la partie de la BD1 qui ne servent pas va être migrer vers la BD2 pour être consulter si besoin. C'est un archivage pas une sauvegarde. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 714 ![]() |
Ah ok, autant pour moi
Ton fonctionnement m'a l'air donc correct, une petite optimisation pour les deux premières étapes serait d'utiliser le insert-select. Mais je pense que ça dépend de l'utilité que tu as. Si par exemple il s'agit d'historiser des données qui seront peu consultées, pour gagner en performance dans la base 1 et en se moquant des performances de la base 2, ok ça marche. Ca allège les index, donc les temps de réponse sont bien meilleur. Sinon, si il s'agit seulement de "pouvoir préciser quelles sont les valeurs figurant dans l'historique ou non", peut-être que gérer deux bases peut devenir pénible, surtout dans le cas de requêtes complexes. Tu pourrais donc auquel cas utiliser un champ supplémentaire dans ta table, par exemple un booleen "histo", que tu incluerais dans toutes tes requêtes afin de filtrer. Tu ne perdras pas beaucoup en vitesse d'execution, mais par contre en facilité de gestion, tu y gagneras énormément. Bon courage
__________________
K |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : mai 2002 Messages : 417 ![]() |
Non, je ne vais pas faire de débat sur les termes.
T'inquiète pas, la BD sera peu consulté. Je note la petite optimatisation. |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Inscription : mai 2002 Messages : 417 ![]() |
Avec mysql_select_db, on peut choisir qu'une seule BD.
Comment on fait pour avoir accès à 2 BD (sur la même connection) ? INSERT ...BD2 SELECT ...BD1 ? ou Y a-t-il une astuce pour déplacer les enregistrement d'une DB vers l'autre ? |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 714 ![]() |
Hmm excellente question, peut-être ( mais je suis pas sûr ) un prefixage des tables avec le nom de la base pourra marcher, mais oops il se peut que tu aies deux bases avec le même nom ?
__________________
K |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : mai 2002 Messages : 417 ![]() |
J'ai 2 BD avec un nom différents et chaque table (des 2 BD) a un nom unique.
Donc je n'ai aucune confusion dans le nommage. Sinon, au pire, je met les tables d'archivage (historique) dans la même BD et comme çà j'aurais qu'une seul BD. Es ce une bonne solution ? |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 714 ![]() |
Je pense qu'il vaut mieux avoir une seule BD par application personnellement. Ca simplifie énormément le travail.
__________________
K |
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() Inscription : mai 2002 Messages : 417 ![]() |
Ok, je vais tout mettre dans une seul BD
|
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Inscription : avril 2005 Messages : 7 ![]() |
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com