Cela dépend de la requêtes et la sélectivité de l'index/la requête de la combinaison.
Cas A: l'état d' WHERE isok = 1
et rien d'autre là-bas:
SELECT *
FROM tableX
WHERE isok = 1
Si l'indice est suffisamment sélectif (dire que vous avez 1M de lignes et seulement 1k ont isok = 1
), puis le moteur SQL sera probablement utiliser l'index et être plus rapide que sans elle.
Si l'index n'est pas suffisamment sélectif (dire que vous avez 1M de lignes et plus de 100k ont isok = 1
), puis le moteur SQL ne sera probablement pas utiliser l'index et de faire une analyse de la table.
Cas B: l'état d' WHERE isok = 1
et plus de choses:
SELECT *
FROM tableX
WHERE isok = 1
AND another_column = 17
Ensuite, cela dépend de ce que d'autres indices que vous avez. Un index sur another_column
serait probablement plus sélectif que l'indice isok
qui n'a que deux valeurs possibles. Un index sur (another_column, isok)
ou (isok, another_column)
serait encore mieux.