par
alsab » 04 avr. 2011, 21:06
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.