Utilisation de soundex2 (comparaison formulaire à BDD)

Eléphant du PHP | 117 Messages

10 oct. 2008, 19:46

Bonjour à tous, j 'utilise l'algorithme soundex2 sur mon site, mais le problème c'est que c'est assez long à rechercher.
Voici comment je procède, dans ma BDD il n'y a pas de champ soundex_nom, ... donc je dois faire une boucle qui va comparer tous les champs de la table dans laquelle je recherche, puis je vais mettre les id des lignes correspondantes dans un tableau, et je vais ensuite refaire une boucle pour afficher les lignes qui ont le même son que mon champ recherché, y a t-il moyen d'accèlérer ce processus.

Merci d'avance.

Mammouth du PHP | 19672 Messages

10 oct. 2008, 19:48

Peut-être bien oui, en indexant la colonne sur laquelle s'effectue la recherche. À tester :-k

Attention toutefois à un revers sur cette médaille : indexer une colonne accélère notablement la lecture, mais ralentit les écritures. Il faut donc indexer avec mesure.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 117 Messages

10 oct. 2008, 21:05

Oui, en fait j'ai indexé toutes les clés étrangère de mes tables.
Mais je ne pense pas qu'il faut indexer les champ 'nom', 'prenom', ...
Tant pis pour le gain de temps.
Merci quand même.

Mammouth du PHP | 19672 Messages

10 oct. 2008, 22:11

...Mais je ne pense pas qu'il faut indexer les champ 'nom', 'prenom', ...
Encore une fois, il faut y aller avec mesure.

Si la table en question a un nombre limité d'écritures mais se trouve très souvent sollicitée en lecture, alors ça peut valoir la peine d'indexer certaines colonnes en plus des clés étrangères. Tu peux toujours faire des tests en mesurant les différences avec par exemple une série de requêtes en boucle, d'abord sur l'écriture puis sur la lecture sans rien changer des index, puis la même chose en indexant les colonnes de texte.

Comme tu mentionnes des colonnes de nom et prénom, ça sous-entend des membres : ils ne seront pas forcément des millions et après quelques temps, la courbe des inscriptions va se calmer, les lectures en revanche augmentant significativement. CQFD, l'indexation peut devenir une seconde étape après la stabilisation du rythme des inscriptions :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 117 Messages

11 oct. 2008, 14:53

Ok merci pour cette remarque très constructive, je vais essayer de faire de cette manière.
Merci encore pour ta réponse.