Page 1 sur 1

Mysql fulltext et catégorie

Posté : 04 avr. 2011, 21:06
par alsab
Salut,

Je cherche à faire une recherche fulltext avec mysql, je suis entrain de faire des test, et je rencontre un problème.
J'ai une table auteur, Myisam, avec colonnes id / auteur, index primary pour id
et une table commentaire, Myisam, avec colonnes id_auteur / text, index primary pour id_auteur et index fulltext pour text

Maintenant si je test ces requêtes,
SELECT * FROM commentaire as tab2 INNER JOIN auteur as tab1 ON tab1.id = tab2.id AND tab1.id BETWEEN 1 AND 10 WHERE  MATCH (tab2.text) AGAINST ('test')
ou si j'inverse,
SELECT * FROM  auteur as tab1 INNER JOIN commentaire as tab2 ON tab1.id = tab2.id AND MATCH (tab2.text) AGAINST ('test') WHERE tab1.id BETWEEN 1 AND 10 
Dans les 2 cas ma requête prend une vingtaine de seconde (j'ai pratiquement 1 million de ligne dans ma table commentaire pour faire mes tests), exactement le même temps que sans la jointure.
Comment faire pour que mysql sélectionne d'abord les lignes concernées et ensuite la recherche fulltext.

Merci.

Re: Mysql fulltext et catégorie

Posté : 10 avr. 2011, 04:49
par devlop78
regarde les sous requetes.

Tu filtres d'abord une chose, et ensuite une autre. Moi je fais ça par exemple pour chercher dans l'ordre alphabétique mais retourner le résultat dans l'ordre inverse ...

Essai aussi de mettre tab1.id BETWEEN et le MATCH dans le WHERE, avec un peu de chance, si la condition 1 n'est pas remplie, il ne cherchera pas à vérifier la condition 2 ... Ce qui viendra au même je pense que les sous requêtes.

Ensuite, si tu attends x lignes, n'hésite pas à placer un LIMIT x pour qu'il s'arrête de chercher dès qu'il a trouvé.