Version complète: sur le forum Webmaster Hub : Performance d'un REPLACE
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
captain_torche
Je suis en train de découvrir de nouvelles subtilités de MySQL, notamment la fonction REPLACE.

Lors de la modification d'une entrée de ma base, je dois mettre à jour les références à cette entrée dans des champs de type TEXT.
Le souci, c'est que je ne l'utilise encore qu'en local, sur un petit nombre d'enregistrements, mais je ne sais pas quel en serait le comportement sur un nombre beaucoup plus élevé d'enregistrements.

D'ailleurs, faut-il l'utiliser de cette manière :
SQL
UPDATE matable SET champ=REPLACE(champ,'oldchaine','newchaine' ) WHERE champ LIKE '%oldchaine%'

ou comme ceci :
SQL
UPDATE matable SET champ=REPLACE(champ,'oldchaine','newchaine' )


En gros : est-il nécessaire de préciser un LIKE '%%' sur un champ TEXT, ou ce sera horrible en termes de ressources consommées ?
Et est-il envisageable d'utiliser REPLACE sur un grand nombre de champs TEXT à la fois ?
Dan
Sans vouloir édicter de règles précises, j'ai déjà utilisé la première formulation sur la table des posts du Hub, sans que cela ne pose de problème de performances.

Mais on a une grosse machine smile.gif
captain_torche
Oui, c'est sûr, je vise pas le méga-dédié wink.gif
C'était une opération régulière, ou exceptionnelle ?
Dan
Plutôt exceptionnelle. Je ne le faisais que lorsqu'un membre demandait à changer de pseudo.
C'était pour changer les noms des citations.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.