Optimering ift. søgning i keywords
Hej,Jeg søger nogle tips til optimering af nedenstående queries. Først en forklaring af mine tabeller:
test_ads indeholder annoncer
test_ad_keys_where og test_ad_keys_who indeholder ad_id's og keyword_id's for at linke ads og keywords sammen
test_keywords indeholder keywords
Jeg ønsker at finde de annoncer hvor keywords matcher en søgning. Jeg har fået sammensat nedenstående query, men synes at ønske at det kører hurtigere.
Alle tips er velkomne, også forslag til anden struktur.
Ift. en anden struktur, arbejder jeg med tanken om at bruge Match Against, hvor jeg har samlet 'where'-keywords og 'who'-keywords til en fulltext-index'ed string. Hvordan vurderes denne struktur ift. nedenstående?
På forhånd tak for dit svar!
SELECT `a`.`ad_id`
FROM `test_keywords` AS `k1` , `test_keywords` AS `k2`
JOIN `test_ad_keys_where` AS `e` ON `e`.`keyword_id` = `k2`.`keyword_id`
JOIN `test_ad_keys_who` AS `o` ON `o`.`keyword_id` = `k1`.`keyword_id`
JOIN `test_ads` AS `a` ON `a`.`ad_id` = `e`.`ad_id`
AND `a`.`ad_id` = `o`.`ad_id`
JOIN `customers` AS `c` ON `c`.`id` = `a`.`customer_id`
WHERE (
`k1`.`keyword` LIKE 'taxi%'
)
AND (
`k2`.`keyword` LIKE 'københavn%'
)