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.

Vos commentaires et/ou trackbacks

Le mercredi 17 mai 2006 à 22:50, commentaire par Blog de l'équipe Zone38 :: site :: #

La rapidité d'un site web passe par l'optimisation de son code source, dont les requêtes à la base de donnée. C'est pourquoi le SQL, langage utilisé par les bases MySQL, PostgreSQL, MSQL ... propose la fonction EXPLAIN, permettant d'obtenir la liste des opérations faites par le serveur.

Ajouter un commentaire

Les commentaires pour ce billet sont fermés.