MySQL fuld tekstsøgning og Mysql indekser

Image representing MySQL as depicted in CrunchBase

For nogen tid siden skrev jeg om MySQL Fulde Tekst Søgning 🙂 I dag havde jeg en meget interessant oplevelse med en ansøgning. Generelt, programmet søger efter resultater, som ingen anden tabel. Vælg en hoved-og en sub vælger i, HVOR en del af forespørgslen. Alt i alt skelet

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

Generelt, en simpel forespørgsel. Jeg skrev det for 30 spil med hende og låser maskinen. Efter en lang tid og ventede tålmodigt med min hånd, eller bare ~43 sec . Jeg spyttede resultat lol . Pfff madness. Jeg går i bilen for at se CPU optaget næsten normal i hvile. Chok og rædsel. Jeg kør forespørgslen igen med samme resultat. Fuck WTF. Til spørgsmålet forklare af forespørgslen, og alle lysna – det andet felt secondTextField kun fuld tekst søgning uden index, og der er en skuffe, og beskeden om 35K rækker. Hvem bør læse – full text search er ikke en indikator. Det er allerede klart, problemet hurtigt

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

Og dine ting er kommet på plads tog Forespørgsel 0.0005 sek 😀

Vær forsigtig med, hvordan du indekset afhænger af den marginale sats anmodning.

p. Sørensen som helhed er jeg forkert om den ovenstående situation ikke kun fordi det mangler et indeks fordi ikke bruger fuld tekst søgning metode 😀

Forstærket af Zemanta

efterlade et svar

Din e-mail-adresse vil ikke blive offentliggjort. Krævede felter er markeret *

Anti-SPAM *