FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Flitig postare
|
Jag har ett litet problem. Jag har en stor tabell P med produktinfo. P innehåller tre kolumner. ID, NAMN och TILLVERKARE. Jag vill nu kunna söka fritextsöka i både NAMN och TILLVERKARE samtidigt. Idag har jag ett fritextindex för NAMN och ett för TILLVERKARE.
Så här ser en typisk fråga ut när man söker på namnet "namn" och tillverkaren "tillverkare" Kod:
SELECT ID, NAMN, TILLVERKARE, MATCH(NAMN) AGAINST ("namn") + MATCH (TILLVERKARE) AGAINST ("tillverkare") AS RELEVANCE FROM P WHERE MATCH(NAMN) AGAINST ("namn") AND MATCH (TILLVERKARE) AGAINST ("tillverkare") ORDER BY RELEVANCE DESC Problemet med denna fråga är att den tar väldigt lång tid att exekvera. Särskilt om man söker på namn och tillverkare som har flera ord i sig. Kan någon tipsa mig om hur jag kan effektivisera min fråga? Jag har funderat på att göra ett gemensamt index för NAMN och TILLVERKARE. Men nackdelen med den lösningen är att om jag söker på NAMN "abcd" så kan jag få träffar på TILLVERKARE som heter "abcd". Och det blir ju fel... :-) Jag kör mysql 4.0.25 |
||
![]() |
![]() |
Ämnesverktyg | |
Visningsalternativ | |
|
|