Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Base MySQL et Index

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
MadMatt
Nouveau WRInaute

Inscrit le: 02 Sep 2007
Messages: 17

URL permanente de ce messagePosté le : Mer Nov 14, 2007 22:04    Sujet du message: Base MySQL et Index

Bonjour à tous,

J'ai quelques question concernant les Index dans une table SQL.

Est-il utile de les mettre sur des champs enum (Par exemple sur un champ "Actif" qui détermine si un compte utilisateur est actif ou non) ? Car je me demande si ça pourrait accélérer le listage des comptes Actifs, ou au contraire si pour un enum c'est pas conseillé.

De même, est-ce "grave" si une table comporte plus de 5 Index environ (si j'en met un peu à tout va) ?

Est-ce utile en gros de mettre un Index sur chaque colonne que je risque d'utiliser comme filtre lors d'une requete (une recherche dans la base de données par exemple) ?

Merci si vous avez des conseils
 
MadMatt Visiter le site web du posteur
auboutdufil
Nouveau WRInaute

Inscrit le: 19 Mai 2006
Messages: 21
Localisation: France

URL permanente de ce messagePosté le : Mer Nov 14, 2007 22:48    Sujet du message: Base MySQL et Index

Salut Madmatt,

Moins tu auras d'index plus ils seront performants.
Tu dois créer ton index sur le champ très fréquemment utilisé dans tes selects.
Le champ où tu veux placer ton index doit avoir une fréquence d'échantillonage élevé (idéalement un champ unique), donc ça sert à rien sur un champ enum qui déduction a une petite liste de valeur

Je suis pas DBA alors tout ce que je dis est à prendre au conditionnel
 
auboutdufil Visiter le site web du posteur
jcaron
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Fév 2004
Messages: 521
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 0:51    Sujet du message: Re: Base MySQL et Index

MadMatt a écrit:
Est-il utile de les mettre sur des champs enum (Par exemple sur un champ "Actif" qui détermine si un compte utilisateur est actif ou non) ? Car je me demande si ça pourrait accélérer le listage des comptes Actifs, ou au contraire si pour un enum c'est pas conseillé.


Oui, ça peut effectivement être utile. Maintenant demande-toi exactement quelle est la requête qui va utiliser cet index, si cette requête est exécutée souvent, et si elle aurait besoin d'autres choses. Si la requête n'est pas exécutée souvent, tu peux probablement te passer de l'index. Si la requête liste (par exemple) les 10 derniers compte actifs, en plus de l'état actif/inactif, tu peux avoir intérêt à mettre la date (celle qui compte pour "10 derniers") dedans. Comme ça il n'a pas besoin de parcourir tout l'index pour trouver 10 lignes.

MadMatt a écrit:
De même, est-ce "grave" si une table comporte plus de 5 Index environ (si j'en met un peu à tout va) ?


En lecture, un index ne gêne pas (ou très très peu, il faut juste décider s'il est utile de s'en servir ou pas). Par contre ça implique qu'à chaque écriture (insertion/mise à jour/supression) il va falloir mettre à jour tous ces index. Si tu écris très peu et lis beaucoup avec beaucoup de requêtes différentes qui ont besoin d'index différents, ajoute tous les index que tu veux. Si au contraire tu écris beaucoup, limite le nombre d'index.

MadMatt a écrit:
Est-ce utile en gros de mettre un Index sur chaque colonne que je risque d'utiliser comme filtre lors d'une requete (une recherche dans la base de données par exemple) ?


A moins que tu ne permettes une recherche sur n'importe quel critère, il vaut mieux adapter chaque index aux requêtes spécifiques que tu peux faire, avec éventuellement plusieurs colonnes dans chaque index.

NB: je n'utilise jamais mysql mais uniquement postgresql, donc je ne suis pas 100% certain que mysql soit capable d'utiliser des index multi-colonnes dans tous les cas de figure, mais je suppose et j'espère qu'il sait le faire!

Jacques.
 
jcaron Visiter le site web du posteur
MadMatt
Nouveau WRInaute

Inscrit le: 02 Sep 2007
Messages: 17

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 14:45    Sujet du message: Base MySQL et Index

Merci, c'était parfaitement ce que je cherchais comme réponse. Je vais appliquer vos conseils (je suis en train de reconcevoir la base de données, mieux vaut tard que jamais).

Bonne journée
 
MadMatt Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Autres sujets de discussion :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort