Bonjour,
Je suis plutot novice en se qui concerne les optimisations mysql et une question me trote :
est-ce qu'une grosse table avec des jointure sur cette même table vaut mieux que plein de petites tables avec des jointures entre elle ???
Bonjour,
Je suis plutot novice en se qui concerne les optimisations mysql et une question me trote :
est-ce qu'une grosse table avec des jointure sur cette même table vaut mieux que plein de petites tables avec des jointures entre elle ???
Même si elle représente cent millions de lignes, si la grosse table est correctement indexée, si elle n'est pas désorganisée, si les statistiques du catalogue relationnel sont à jour, si le facteur de filtrage est bon (peu de pages index et données accédées), alors une requête pourra coûter, disons, entre 20 et cent millisecondes.
Inversement, si une table est cent fois moins volumineuse et que les conditions précédentes ne sont pas réunies, alors la même requête pourra durer une heure et au-delà.
Cela fait beaucoup de "si", c'est pourquoi le mieux est que vous consultiez votre DBA pour lui demander de vous apprendre à prototyper vos requêtes.
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
merci de la précision.
En fait je compte tenter d'utiliser la méthode d'arborescence décrite ici afin de n'utiliser qu'une seule table pour organiser toutes les ressources peu encombrante (facile à indexer) plutôt que de faire X jointures à n'en plus finir.
Avec cette méthode on pourrait organiser les données un peu sous la forme du XML et récupérer toutes les données necessaires en une seule requète. Il y aura des sous-requetes mais un seule table en lecture, ça réduirait donc le temps d'accès disque. En fait ce serait un peu comme une base de donnée objet.
Mais je suis pas expert la dedans et j'ai jamais travaillé sur des grosses tables donc est-ce qu'en terme de performance ce serait faisable ou bien je plane complètement ?
Ceci est parfaitement subjectif. Accéder à plusieurs petites tables peut paradoxalement représenter moins d'accès disque qu'en accédant à une seule table obèse. Dans tous les cas, seul un prototypage de performance permet de conclure.Il y aura des sous-requetes mais un seule table en lecture, ça réduirait donc le temps d'accès disque
En tout état de cause, sans MCD et sans règles de gestion, il est impossible de poursuivre cette discussion qui relève du café du commerce.
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager