2010-08-30 8 views
1

J'ai des milliers de schémas de bases de données à mettre à jour (ajouter une colonne, mettre à jour certaines lignes et ajouter 3 lignes dans 2 tables différentes).MySQL Plusieurs schémas de bases de données à mettre à jour => performance

J'ai 2 approches différentes pour le faire:

1) Mettez le nom de chaque schéma avant les noms de table

# database A01be91a86 

UPDATE A01be91a86.ACTION set CODE_QUALIFICATION.... 
ALTER table A01e02a697.IMPRESSION add column NAME..... 

# database blabla 
.... 
.... 
# thousand databases 

# database zfc982251d 

UPDATE zfc982251d.ACTION set CODE_QUALIFICATION.... 
ALTER table zfc982251d.IMPRESSION add column NAME..... 

2) se connectent au schéma de base de données avant chaque mise à jour

# database A01be91a86 

connect A01be91a86 
UPDATE ACTION set CODE_QUALIFICATION.... 
ALTER table IMPRESSION add column NAME..... 

# database blabla 
.... 
.... 
# thousand databases 

# database zfc982251d 

connect zfc982251d 
UPDATE ACTION set CODE_QUALIFICATION.... 
ALTER table IMPRESSION add column NAME..... 

L'objectif est de limiter le temps que tout le script prendra pour exécuter

Quelle est la meilleure approche? Le premier ou le second? Ou peut-être un troisième auquel je n'avais pas pensé.

Merci les gars

Répondre

-1

L'optimisation prématurée est la racine de tous les maux ...

Combien de temps faut-il pour s'y rendre actuellement, et combien de temps faut-il prendre?

+0

C'est une application SAAS. Le moins de temps, le mieux. Et j'ai littéralement des dizaines de milliers à mettre à jour. C'est loin d'être prématuré. – Thomas

0

Je pense que le premier pourrait être plus rapide - mais ce sera un plus gros script donc plus difficile à écrire. Pourquoi ne pas restaurer une sauvegarde de la base de données quelque part et l'essayer?

+0

Ne vous inquiétez pas, je ne l'écris pas à la main. Un script ruby ​​est responsable de cela. Du premier au second, c'est une ligne de code. Les bases de données sont des bases de données clients (informations financières ici). Je ne veux pas trop gâcher avec eux :-) – Thomas

Questions connexes