nakuni


adjoint

11085 messages

Membre, Developpeur, LAN, Retraité, Chef (ED)

Mercredi 25 Mars 2009 - 12:35 (post édité 1 fois)

Vu qu'apparemment il y'a quelques personnes qui maîtrisent SQL j'en profite Razz

Je me demandais si ça valait le coup de mettre un index sur un champ int(1) qui ne contient que 0 ou 1 (genre un champ valide_utilisateur par exemple)? Logiquement je pense que non mais dans le doute je préfère demander aux vieux Twisted Evil

EDIT: quoique j'ai lu que oui, mais la source n'est pas sûre.


 

lemonhead


dirigeant

18018 messages

Fondateur, Dirigeant, Membre, Developpeur, LAN-MASTER, Streamer, Corpo, Designer, Adjoint (ED)

Mercredi 25 Mars 2009 - 12:49

Pas assez d'infos pour te répondre. Pour construire les index, faut savoir quelles requêtes tu fais...


« Lemon est vraiment un Malade... Heureusement qu'il est de notre côté.» (Guzmud)

« Lemon est fort, Lemon est beau, Lemon est sexy, Lemon est omniscient, Lemon est THE Lemon » (Violenconjugal)

« Lemon a un monde à lui dans sa tête » (Im_a_player)

« Putain, ca devient trop ce clan. Bientot on appelera Lemon le Parrain et le clan la Famille. Nawak » (Rumpl)

« Lemon est le seul mec qui préfère qu'on lui dise qu'il a une grosse femme plutôt qu'une grosse bite. » (Thrallscream)

« Lemon vient de me montrer... c'est ENORME !!! » (Seven)

« Lemon est un dieu, et Thrall a une.... enfin bon, je m'égare. » (Titi-fr)

nakuni


adjoint

11085 messages

Membre, Developpeur, LAN, Retraité, Chef (ED)

Mercredi 25 Mars 2009 - 12:51 (post édité 1 fois)

Et bien imagine une requête toute simple du genre SELECT ma_teub FROM prout WHERE valide_utilisateur =1

Est-ce que ça vaut le coup de mettre un index sur valide_utilisateur?

EDIT: un vrai exemple: SELECT num_quest FROM questions WHERE valide_quest = 1


 

Tompuce


703 messages

Mercredi 25 Mars 2009 - 17:09

Un index permet d'éviter de scanner la table en accédant directement aux enregistrements concernés. Le gain attendu dépend donc en théorie du nombre d'enregistrements et non du nombre de valeurs distinctes de l'attribut. Note au passage que ce paramètre n'est pas négligeable non plus: si tu n'as que deux valeurs possibles, la création d'un index t'épargnera donc l'examen des enregistrements n'ayant pas la valeur, si la répartition est égale -> 50%. Les index sont particulièrement utiles, voire indispensables, sur des bases volumineuses. En espérant que cette explication t'aidera Content

nakuni


adjoint

11085 messages

Membre, Developpeur, LAN, Retraité, Chef (ED)

Mercredi 25 Mars 2009 - 17:12

Merci tompouce, donc en gros si je comprend bien si 60% de mes resultats ont pour valeur "1", mysql ignorera les 40% de "0" c'est bien cela?

Allez hop je vais ajouter cet indexClin d


 

Tompuce


703 messages

Mercredi 25 Mars 2009 - 17:18

Oui c'est ça.

Tompuce


703 messages

Mercredi 25 Mars 2009 - 17:26

Tiens voici un lien intéressant:
http://deptinfo.unice.fr/~grin/messupports/sql.pdf

nakuni


adjoint

11085 messages

Membre, Developpeur, LAN, Retraité, Chef (ED)

Mercredi 25 Mars 2009 - 18:20

Merki


 

lemonhead


dirigeant

18018 messages

Fondateur, Dirigeant, Membre, Developpeur, LAN-MASTER, Streamer, Corpo, Designer, Adjoint (ED)

Mercredi 25 Mars 2009 - 19:25

C'est évident que ta requête tournera plus vite si tu mets un index... mais il faut également savoir que TOUTES les autres requêtes d'insertion ou de modification sur ta table prendront un peu plus de temps ! A chaque insert ou update, en fait c'est comme si t'avais autant de tables à modifier que tu as d'index. C'est la raison pour laquelle il ne faut pas mettre un index sur toutes les zones d'une tableClin d


« Lemon est vraiment un Malade... Heureusement qu'il est de notre côté.» (Guzmud)

« Lemon est fort, Lemon est beau, Lemon est sexy, Lemon est omniscient, Lemon est THE Lemon » (Violenconjugal)

« Lemon a un monde à lui dans sa tête » (Im_a_player)

« Putain, ca devient trop ce clan. Bientot on appelera Lemon le Parrain et le clan la Famille. Nawak » (Rumpl)

« Lemon est le seul mec qui préfère qu'on lui dise qu'il a une grosse femme plutôt qu'une grosse bite. » (Thrallscream)

« Lemon vient de me montrer... c'est ENORME !!! » (Seven)

« Lemon est un dieu, et Thrall a une.... enfin bon, je m'égare. » (Titi-fr)

rumpl


adjoint

1434 messages

Membre, Developpeur, LAN-MASTER, Retraité

Jeudi 26 Mars 2009 - 11:48

Les index, c'est pas plus intelligent de les faire a la fin du projet quand tu a fini toute ton application ? Genre, quand tu sais quelles requetes tu fais a ta base, tu trouves celles qui risquent de renvoyer beaucoup de resultats, tu regades dans celles-ci quels champs tu a dans le WHERE et tu met les index sur ceux-la.

Si t'en met trop, c'est pas bon, si t'en met pas assez, bah c'est pas bon non plus. Je pense vraiment que tu devrai avoir toutes tes requetes avant de mettre les index.


Les choses qui méritent d'être faites méritent d'être mal faites.

T-oday I bake, to-morrow brew,
the next I'll have the young queen's child.
Ha, glad am I that no one knew
that Rumpelstiltskin I am styled.

nakuni


adjoint

11085 messages

Membre, Developpeur, LAN, Retraité, Chef (ED)

Jeudi 26 Mars 2009 - 12:18

C'est le casClin d

En gros je mets des index sur mes champs qui sont souvents contenus dans des Where. Je sais qu'un multi-index (col1, col2, col3) servira aussi sur une requete qui utilise dans son where (col1, col2) ou (col1) mais ne servira à rien pour (col2) ou (col2, col3) par exemple. A partir de là j'essai de faire au mieux.

Le site à beaucoup moins d'INSERT/UPDATE que de SELECT, à partir de là je pense avoir fais au mieux.Clin d


 

rumpl


adjoint

1434 messages

Membre, Developpeur, LAN-MASTER, Retraité

Jeudi 26 Mars 2009 - 12:19

Meuh, je suis sur que t'a fait de la merde Razz
(montre le site)


Les choses qui méritent d'être faites méritent d'être mal faites.

T-oday I bake, to-morrow brew,
the next I'll have the young queen's child.
Ha, glad am I that no one knew
that Rumpelstiltskin I am styled.

nakuni


adjoint

11085 messages

Membre, Developpeur, LAN, Retraité, Chef (ED)

Jeudi 26 Mars 2009 - 12:48

Je vais faire un post exprès là justementClin d


 

lemonhead


dirigeant

18018 messages

Fondateur, Dirigeant, Membre, Developpeur, LAN-MASTER, Streamer, Corpo, Designer, Adjoint (ED)

Jeudi 26 Mars 2009 - 13:29

Nakuni a écrit :
C'est le casClin d

En gros je mets des index sur mes champs qui sont souvents contenus dans des Where. Je sais qu'un multi-index (col1, col2, col3) servira aussi sur une requete qui utilise dans son where (col1, col2) ou (col1) mais ne servira à rien pour (col2) ou (col2, col3) par exemple. A partir de là j'essai de faire au mieux.

Le site à beaucoup moins d'INSERT/UPDATE que de SELECT, à partir de là je pense avoir fais au mieux.Clin d


Ben moi je pense que t'as tout compris Content

« Lemon est vraiment un Malade... Heureusement qu'il est de notre côté.» (Guzmud)

« Lemon est fort, Lemon est beau, Lemon est sexy, Lemon est omniscient, Lemon est THE Lemon » (Violenconjugal)

« Lemon a un monde à lui dans sa tête » (Im_a_player)

« Putain, ca devient trop ce clan. Bientot on appelera Lemon le Parrain et le clan la Famille. Nawak » (Rumpl)

« Lemon est le seul mec qui préfère qu'on lui dise qu'il a une grosse femme plutôt qu'une grosse bite. » (Thrallscream)

« Lemon vient de me montrer... c'est ENORME !!! » (Seven)

« Lemon est un dieu, et Thrall a une.... enfin bon, je m'égare. » (Titi-fr)

nakuni


adjoint

11085 messages

Membre, Developpeur, LAN, Retraité, Chef (ED)

Jeudi 26 Mars 2009 - 13:35

Merci Lemon, grâce à toi je me sens plus fort pour affronter la vie Razz


 

Liens utiles : Rechercher - Droits d'accès