Visa ett inlägg
Oläst 2006-10-13, 16:52 #1
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
radioaktivitet radioaktivitet är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 336
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
Jag har nästan en miljon rader i tabell P.

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
radioaktivitet är inte uppkopplad   Svara med citatSvara med citat