MySql -- Un index sur un SET('0','1') est-il utile ? - PHP - Programmation
Marsh Posté le 23-07-2002 à 17:18:10
non si ton champ ne peux prendre que deux valeurs differentes alors un full scan sera toujours plus rapide.
ajouter un index dégraderait les perfs.
Marsh Posté le 23-07-2002 à 17:33:39
OK. Sinon je viens de me rendre compte que je me suis planté pour le type de la colonne... Dans mon cas faut mettre un ENUM('0','1' et pas un un SET() puisque je ne dois avoir qu'une valeur à la fois.
Marsh Posté le 23-07-2002 à 17:36:59
Et si mon ENUM() avait 7-8 valeurs (par exemple ça correspondrait aux catégories du forum) l'index serait-il utile dans ce cas ?
Plus généralement à partir de combien de valeurs possibles l'index est-il efficace ?
Marsh Posté le 23-07-2002 à 17:49:53
Dost67 a écrit a écrit : Et si mon ENUM() avait 7-8 valeurs (par exemple ça correspondrait aux catégories du forum) l'index serait-il utile dans ce cas ? Plus généralement à partir de combien de valeurs possibles l'index est-il efficace ? |
la j'en sais rien ... mais pour 2 ou 3 valeurs distinctes c'est largement pas la peine ... sauf dans certains cas précis (99% des enregs sont a 0 et 1% a 1 par ex) ...
ensuite ca dépend aussi du sgbd, pour mysql j'en ai aucune idée, le mieux est de faire des tests toi même avec tes propres sets de données ...
Marsh Posté le 23-07-2002 à 17:05:26
J'ai un champs SET('0','1' qui me sert à valider ou invalider une ligne entière. Ce champs est très sollicité car toutes les requêtes de mon site contiennent un WHERE status='1'...
Cependant comme il n'y a que 2 valeurs et qu'il s'agit en plus d'un SET() je ne sais pas si l'ajout d'un index apporte quelque chose chose en terme de performances.
Message édité par Dost67 le 23-07-2002 à 17:05:46