bonjour,
quelqu'un m'a glissé à l'oreille que postgres compare plus vite 2 chaines que 2 dates ? est-ce vrai ? je n'ai pas assez de données date dans une table pour vérifier...
En gros, il m'a dit qu'il vaut mieux faire des WHERE to_char(madate)='mon autre date' que d'écrire WHERE madate=mon_autre date
il m'a expliqué que pg avant toute opération/expression de date vérifie toujours la date avant de faire la comparaison et que cette vérification prend bcp de temps (alors qu'il n'y a pas de vérification lors d'une comparaison de chaine)
j'ai vérifié c'est vrai : si on fait where a='2012-02-31' alors pg crie bien à l'erreur car le 31 fév n'existe pas. Donc oui il ya bien une vérification avant la comparaison. Du coup si on a 2 dates en opérande, pg fait 2 vérif.
Alors qu'avec une comparaison de 2 chaines, il n'a aucune vérification à faire car une chaine peut être NIMPORTEQUOI.
par pour savoir si le coût d'une conversion en chaine est moindre que le coût d'une vérification de date..bun là, je sêche, je ne sais pas comment vérifier cela.
il faudra avoir une table avec 1millions de date et faire un test avec et sans conversion en string.
qu'en pensez-vous ?
Partager