Bonjour,
Je viens vers vous aujourd'hui car j'ai un problème avec une de mes requêtes SQL.
Sur le site que je développe en ce moment j'ai des annonces qui contiennent une description, un titre et posté par un user (le cas d'école quoi). J'ai besoin de faire une recherche parmi ces informations, pour cela j'utilise ce type de requête :
SELECT * FROM annonce_annuaire,user_annuaire WHERE user_annuaire.id_user = annonce_annuaire.id_user AND (titre REGEXP 'L(È|É|Ê|Ë|E|è|é|ê|ë|e)(ç|c)t(U|Ù|Ú|Û|Ü|ù|ú|û|ü|u)s p(È|É|Ê|Ë|E|è|é|ê|ë|e)d(È|É|Ê|Ë|E|è|é|ê|ë|e)' OR pseudo REGEXP '^.*L(È|É|Ê|Ë|E|è|é|ê|ë|e)(ç|c)t(U|Ù|Ú|Û|Ü|ù|ú|û|ü|u)s p(È|É|Ê|Ë|E|è|é|ê|ë|e)d(È|É|Ê|Ë|E|è|é|ê|ë|e).*$' OR description REGEXP '^.*L(È|É|Ê|Ë|E|è|é|ê|ë|e)(ç|c)t(U|Ù|Ú|Û|Ü|ù|ú|û|ü|u)s p(È|É|Ê|Ë|E|è|é|ê|ë|e)d(È|É|Ê|Ë|E|è|é|ê|ë|e).*$') ORDER BY date_annonce LIMIT 0,5;
La requête me retourne exactement le résultat voulu, le problème étant le délais pour le retourner ...Si je n'applique pas la recherche sur le champ description le délais de réponse est très cours j'ai donc identifié le problème (le champ description peut contenir jusqu'à 10000 caractères).
La question étant maintenant comment faire pour optimiser cela pour que le délais de recherche soit plus court ?
Merci d'avance pour votre aide.
Urda
Partager