Salut,



J'aurais besoin d'information supplémentaire sur un point particulier en ce qui concerne les vues et leurs performances...

J'ai une base de données qui devra accueillir un grand nombre de table (plus de 200, mais cela pourrait augmenter dans le futur) :
Ces tables ont la particularité d'avoir exactement la même structure et les mêmes index, et ne diffère que par leurs noms :
table1, table2, table3, ..., tableN
Note : je n'ai pas la main sur la structure de ces tables


J'aurais besoin de faire des requêtes sur toutes ces tables en même temps. Pour cela, la solution que j'ai trouvé consiste à utiliser une vue SQL qui regrouperait toutes ces tables via une UNION, tout en leurs associant un identifiant unique, ce qui donne :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CREATE OR REPLACE VIEW table_all (ID, ...la_liste_des_champs...) AS
          SELECT 1, table1.* FROM table1
UNION ALL SELECT 2, table2.* FROM table2
UNION ALL SELECT 3, table3.* FROM table3
(...)
UNION ALL SELECT N, tableN.* FROM tableN;
Avec un petit nombre de table (5) cela fonctionne parfaitement.

Je n'ai pas encore le temps de tester avec un nombre de table plus élevé (je dois d'abord importer et convertir les données) mais j'aimerais savoir si cela pourrait poser des problèmes quelconques dans le futur... et si les performances ne risque pas de trop se dégradé !


J'attends vos avis !



a++

PS : Cela devrait tourner sur une base MySQL, mais je pense que ce message a sa place dans le forum SQL. Si jamais n'hésitez pas à déplacer