SQL - vs PAS DANS

Supposons que j'ai un tableau avec une colonne qui prend les valeurs de 1 à 10. J'ai besoin de sélectionner les colonnes à toutes les valeurs, sauf pour les 9 et 10. Aura-t-il une différence (de performance) lorsque j'utilise cette requête:

SELECT * FROM tbl WHERE col NOT IN (9, 10)

et ce que c'est?

SELECT * FROM tbl WHERE col IN (1, 2, 3, 4, 5, 6, 7, 8)
BETWEEN 1 AND 8 serait probablement préférable, mais pas la peine de dépenser tout moment, même en tenant compte de la question d'une petite table. Est votre situation réelle différente?
désolé, vous avez raison. la suppression de.
Smith - j'ai été en le considérant comme une situation théorique, je ne vais pas utiliser ces requêtes 🙂
La Performance peut varier largement en fonction du SGBD utilisé. Toujours vérifier le plan d'exécution d'abord, puis vous allez voir.
Aura-t-il une différence de performance? Très probablement, mais ce qui est plus rapide dépend de sql server que vous utilisez, comme c'est bon optimizer, votre index, et de la date et de l'exactitude de la ligne de statistiques, et la distribution de col valeurs.

OriginalL'auteur kyooryu | 2013-06-03