Recherche dans un annuaire

25 réponses
AuteurMessage

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 28/07/2006 à 15:38

Bah dans 95% des cas ça sert à rien d'avoir les deux, puisque "l'unique" est un index...

De même si tu as un index sur "champA, champB", tu n'as pas besoin de faire un index sur "champA". Par contre il peut être utile d'en mettre un sur "champB".

=> c'est comme tout, les index c'est bien, en abuser ça craint

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Julgates | Julien
Administrateur

Photo de Julgates

Inscrit le : 09/03/2005

# Le 28/07/2006 à 15:54

Je met un unique sur un couple (ou quadruple) champs (pour protéger au moment de INSERT), et un index sur un seul des champs (pour améliorer le SELECT qui s'en fout du UNIQUE), et il me sort l'erreur

Shopping Time NetworkOuvrir dans une nouvelle fenetre - Founder / CTO

erwinol | Erwin
Membre

Photo de erwinol

Inscrit le : 09/05/2005

# Le 28/07/2006 à 16:19

Bool a dit :
Les recherches FULLTEXT, as tu déjà essayé "en vrai" ? Pour ma part j'en suis très déçu : la pertinence du truc est très médiocre, le fait d'ignorer les mots de moins de 4 lettres très pénalisant, et sortir les résultats ne contenant pas tous les mots embrouille tout le monde. Enfin, je n'ai approfondi la question, c'est peut être "configurable"...


Oui il semblerait que ce soit configurable : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-bo...Ouvrir dans une nouvelle fenetre

En gros en jouant avec la syntaxe tu peux lui demander de faire une recherche sur tous les mots (+) ou ignorer certains mots et encore pleins d'autres choses bien sympathiques.

La taille minimale des mots à indexer est définie dans la variable ft_min_word_len de MySQL. La limitation a 4 lettres n'est donc pas un problème. Tu peux également définir la liste des mots à rejeter dans la variable ft_stopword_file.

Bref ça me parait intérressant mais il faut voir maintenant au niveau des performances.

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 28/07/2006 à 16:19

bah si c'est le premier, oui c'est normal, c'est bien une erreur (comme indiqué au dessus) et si ce n'est pas le premier, bah justement phpMyAdmin ne marque aucun message

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 28/07/2006 à 16:26

Ah bah merci pour l'info Erwinol Finalement le FULLTEXT pourrait me servir un jour

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 29/07/2006 à 12:21

Je sais pas de toute facon faut tester comme dit bool. J'ai une table avec 700,000 expressions qui avait juste mot en "unique" avant sans autre index, et juste comme ca, c'était super long pour trouver un mot.

J'ai ajouté mon champ avec les deux premiers caractères et c'est passé à quelques mllisecondes. Mais là depuis j'ai retesté en faisant une requete sans utiliser mon champ de 2 caractères et... ca a mis quelques millisecondes aussi... (et sans index sur 2 caractères non plus). Et quand je fais un explain, ca n'utilise que le "unique" finalement, que ma requete soit avec le champ de 2 caractères et qu'il y ait ou non l'index sur les 2 permiers caractères...

Enfin bon, en l'état c'est super rapide, j'y touche pas

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 9:52:58 | Généré en 13.11ms | Contacts | Mentions légales |