Bonjour à tous
j'expose rapidement la problématique :
script php made "home" multi site, c'est à dire : plusieurs sous domaines qui tapent vers le même script et la même base de données. Pour chaque sous domaine, j'ai 1 table dédiée XXXX_posts (où XXXX est le nom du sous domaine), chaque table à exactement la même architecture.
Pour sortir les 10 derniers "post" insérés à travers toutes les tables j'utilise UNION
ça fonctionne sans problèmes, c'est à dire que la requête me sort bien les 10 derniers posts toutes tables confondues.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT `id`, `title`, `created`, `ssdom` FROM alpha_posts UNION SELECT `id`, `title`, `created`, `ssdom` FROM bravo_posts UNION SELECT `id`, `title`, `created`, `ssdom` FROM charlie_posts UNION SELECT `id`, `title`, `created`, `ssdom` FROM delta_posts WHERE actif = '1' ORDER BY `created` DESC LIMIT 10
Mais me voilà entrain de multiplier les sous domaines, donc à chaque fois un UNION en plus, et là je me pose la question de l'optimisation ... si j'ai 50 sous domaine, donc 50 tables, que chaque tables contient une moyenne de 5 000 posts, j'ai peur que la requête soit très très lourde (requête effectuée à chaque chargement de page) !
j'ai les "bases" en SQL mais pas les reins assez solides pour confirmer (ou pas) ma crainte d'un manque d'optimisation / lourdeur. Donc mes questions :
1 - mon raisonnement est il bon ou je me plante, MySQL va s'en sortir pépère ?
2 - Il y a t'il possibilité d'optimiser tout ça ?
Par avance merci
Partager