Recherche SQL

Eléphant du PHP | 50 Messages

21 janv. 2009, 14:25

Bonjour,

J'aimerai connaitre la façon la plus rentable en ressource et en temps de réponse pour effectuer une recherche PHP dans une base MySQL conséquente. (LIKE est trop lent)

Merci d'avance,
JC.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 janv. 2009, 15:07

La recherche la plus efficace est une recherche exacte avec l'opérateur "=" sur un champ indexée :)

Quant à la recherche la plus efficace pour répondre à tes besoins dans ton environnement dépend grandement du contexte : nombre d'enregistrements, tables à rapprocher, type de recherche (commençant, finissant ou contenant), fonctionnement de celle ci (au moins un des termes, l'ensemble des termes ou la phrase exacte), etc.

Donne nous plus d'information et l'on pourra plus facilement te répondre :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 50 Messages

21 janv. 2009, 15:33

Il s'agit d'une recherche parmis les actualités et tutoriaux de mon site (recherche interne au site). Jusque la j'utilisais %.....% avec LIKE. Et je cherche un remplaçant.

Dis moi si tu as besoin de plus d'information.

PS : Ce sont des champs TEXT plutot long dans lesquels je recherche et il y a beaucoup de données.

ViPHP
ViPHP | 1996 Messages

21 janv. 2009, 22:44

Essaye les REGEX comme ceci

Code : Tout sélectionner

SELECT nom,prenom from $table WHERE prenom REGEXP '(Alain)'
J'ai trouvé cela ici : http://www.expreg.com/mysql.php
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr