Je suis principalement un développeur Actionscript et en aucun cas un expert en SQL, mais de temps en temps je dois développer des choses simples côté serveur. Donc, je pensais que je demanderais à des gens plus expérimentés sur la question dans le titre. Je comprends que vous ne gagnez pas beaucoup en définissant un index dans une colonne qui contiendra peu de valeurs distinctes. J'ai une colonne qui contient une valeur booléenne (en fait c'est un petit int, mais je l'utilise comme un drapeau), et cette colonne est utilisée dans les clauses WHERE de la plupart des requêtes que j'ai. Dans un cas théorique «moyen», la moitié des valeurs des enregistrements sera 1 et l'autre moitié, 0. Ainsi, dans ce scénario, le moteur de base de données pourrait éviter une analyse de table complète, mais devra lire beaucoup de lignes de toute façon (nombre total de lignes/2). Donc, devrais-je faire de cette colonne un index? Pour l'anecdote, j'utilise Mysql 5, mais je suis plus intéressé par une logique générale expliquant pourquoi cela n'a pas de sens d'indexer une colonne qui, je le sais, aura une faible cardinalité.Est-il sensé d'utiliser un index qui aura une faible cardinalité?
Merci d'avance.
Merci pour votre réponse. Dans ce cas, je ne suis pas en train de trier sur cette colonne. Il est seulement là pour marquer un enregistrement comme activé/désactivé. Je l'utilise pour la suppression douce, fondamentalement. C'est pourquoi je dois l'utiliser dans la clause WHERE de la plupart des requêtes. –