Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD > Optimisations
Optimisations Forum de conseils pour les optimisations des performances SGBD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2007, 21h17   #1
Nouveau Membre du Club
 
dbadmin et dev web magento
Inscription : janvier 2006
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : dbadmin et dev web magento

Informations forums :
Inscription : janvier 2006
Messages : 42
Points : 31
Points : 31
Par défaut Grosse table avec des jointure sur cette même table vaut mieux que plein de petites ?

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 ???
xorax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 00h32   #2
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 887
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 887
Points : 5 137
Points : 5 137
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.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
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 (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 06h11   #3
Nouveau Membre du Club
 
dbadmin et dev web magento
Inscription : janvier 2006
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : dbadmin et dev web magento

Informations forums :
Inscription : janvier 2006
Messages : 42
Points : 31
Points : 31
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 ?
xorax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 23h31   #4
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 887
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 887
Points : 5 137
Points : 5 137
Citation:
Il y aura des sous-requetes mais un seule table en lecture, ça réduirait donc le temps d'accès disque
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.

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.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
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 (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h06.


 
 
 
 
Partenaires

Hébergement Web