[spip-dev] optimisation : url propres (libres) et noms d'objet composés uniquement de chiffres

Bonjour,

Toujours dans la veine des optimisations possibles :
quand une url propre est composée uniquement de chiffres, la requête générée est la suivante :

SELECT id_objet, type, date
FROM `mabase`.spip_urls
WHERE url=0805;

alors que, vu que le champ url est un varchar, elle devrait être :

SELECT id_objet, type, date
FROM `mabase`.spip_urls
WHERE url='0805';

résultat : mysql n'utilise pas la clé et scanne toute la table, ça peut rapidement faire beaucoup de requêtes :confused:

    Simon

Peux-tu donner un pointeur sur la doc MySQL établissant cette affirmation ?
Je suis surpris que MySQL se laisse piéger par les conversions implicites qu'il doit forcément gérer.

Committo,Ergo:Sum

Je n’ai pas d’élément de doc qui confirme ce fait, juste l’expérimentation :

La première requête vient de mon slow_queries.log, un EXPLAIN montre bien qu’elle n’utilise pas les clés.
Je rajoute les apostrophes à la main => miracle, la clé est utilisée.
Mysql 5.0.45 sur serveur LAMP.

A bientôt
Simon