Optimiser la négation Comparaison entre != et NOT()

lundi 30 décembre 2002 :: perrick :: MySQL :: un commentaire :: aucun trackback

Plongé dans le refactoring d'openTIME, j'en profite pour faire quelques tests sur mes requêtes SQL. Cette fois-ci, il s'agit de comparer "!=" et "NOT()".

Concrètement ça donne :

"SELECT name, user_id FROM project WHERE id != 1"

contre

"SELECT name, user_id FROM project WHERE NOT(id = 1)"

Après un test en local (W2K + Apache 1.3.24 + PHP 4.2.0 + MySQL 3.23.39), puis sur 2 serveurs différents, le résultat est là : "!=", 2,35 s. contre "NOT()", 2,52 s. (moyenne sur 20 éxécutions du script de test). Ce n'est peut-être pas un gain de temps énorme sur les 1000 itérations du code mais c'est toujours ça de pris.

Si vous avez d'autres trucs SQL (ou MySQL), n'hésitez pas à les partager : les commentaires sont là pour ça aussi.