Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2011, 21h12   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 12
Points : 2
Points : 2
Par défaut Optimisation de requete (REGEXP)

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 :

Code :
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
UrdaUrda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 08h49   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
Vu le type de recherche, je pense qu'une indexation/recherche fulltext avec une bonne utilisation des collations serait plus adapté.

Attention cependant, les fonctionnalités de recherche fulltext ne sont disponibles qu'en MyISAM.

En général :
http://blog.developpez.com/sqlpro/p9...ext-search-no/
http://sqlpro.developpez.com/cours/s...er/collations/


MySQL :
http://dev.mysql.com/doc/refman/5.1/...xt-search.html
http://dev.mysql.com/doc/refman/5.1/en/charset.html
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h49.


 
 
 
 
Partenaires

Hébergement Web