Bonjour,
ma table a une 10aines de champs.
en genrale, les SELECT se font sur un ou deux des champs.
Je voudrais savoir si c'est utile de faire un INDEX.
Si oui, a partir de combien d'enregistrements ca devient interessant (voir necessaire).
merci !
Version imprimable
Bonjour,
ma table a une 10aines de champs.
en genrale, les SELECT se font sur un ou deux des champs.
Je voudrais savoir si c'est utile de faire un INDEX.
Si oui, a partir de combien d'enregistrements ca devient interessant (voir necessaire).
merci !
Il est toujours utile de créer un ou des index, c'est même une très bonne habitude.....
Le monde de l'informatique est truffé de BdD montées à la va-vite avec des "on verra + tard pour améliorer". Le truc dort dans son coin pendant des années, puis 1 jour on s'aperçoit que ça rame.
Entre temps, les créateurs sont partis bien sûr.
Et il suffit parfois d'ajouter 1 ou 2 index pour retrouver des perfs normales.
Alors, autant créer ces index en même temps que la BdD, ça permet de dormir tranquille.
merci !
punaise, moi qui esperait remettre ca a plus tard 8)
juste une petite precision...
quand on a un index, la requette SELECT __ WHERE __ se fait de la meme facon ? ou pas ?
il faut faire un WHERE index_champ=XXX ou un WHERE champ=XXX ?
Les index sont juste des listes de pointeurs, on ne les référence pas dans un ordre SQL.
c'est donc transparent.
merci.
toujours sur le sujet des INDEX.
SELECT param FROM matable WHERE a1=XX AND a2= YYYYY;
a1 est un INT sur lequel il y a un INDEX.
a2 est un varchar(50)
il n'y a pas de condition d'unicite sur le couple a1,a2 mais a1 est UNIQUE.
(donc le couple aussi, mais elle n'est pas explicite)
si je mets a2 en index, est-ce que ca va accelerer la recherche.
Ou alors, comme le a1=XX est en premier dans la requete et qu'il y a deja un INDEX sur a1 et qu'il est UNIQUE. ben, ca changera rien de mettre un INDEX sur a2.
oui ?
oula la, pas tres clair ..
Tout ca pour eviter un INDEX de plus qui risque d'etre lourd pour l'ecriture ...
Dans certains cas oui, parce que MySQL va utiliser l'index le plus restrictif (celui qui compte le moins de lignes).Citation:
Envoyé par bibile
Par contre la solution la plus efficace est de mettre un index sur (a1, a2). Dans ce cas-là les lignes recherchées seront trouvées directement dans l'index.
A toi de considérer le ratio écritures/lectures et de privilégier l'un ou l'autre en mettant des index ou non...Citation:
Envoyé par bibile
clair en precis !
merci, :D