MySQL Full Text Search en Mysql Indexes

Image representing MySQL as depicted in CrunchBase

Enige tijd geleden schreef ik over MySQL full text search 🙂 Vandaag had ik een zeer interessante ervaring met één applicatie. In het algemeen, het verzoek zoekt naar resultaten andere tafel mist. Selecteer een hoofd- en een sub selecteren in de WHERE-gedeelte van de applicatie. In het algemeen skelet en

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

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

In principe eenvoudig verzoek. Ik schreef het voor 30 sec voer het uit, en stak machine. Na een lang en geduldig te wachten op mijn part of gewoon ~ 43 sec . Het spuwde resultaat lol . Pfff gekkenhuis. Inloggen machine blik processor is normaal gesproken bezet bijna rusttoestand. Shock and awe. Replay toepassing opnieuw hetzelfde resultaat. neuken WTF. Run verklaren het verzoek en al scheen – Alleen tweede veld secondTextField Zoek volledige text без index, en er is een bescheiden schaal van ongeveer 35K regels. Wie gelezen – Zoek volledige text не е индекс. Al duidelijk probleem snel een

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

En dingen viel op zijn plaats Query nam 0.0005 sec 😀

Wees voorzichtig met hoe je de indices van hen afhankelijk van uw marginale tarief verzoek.

P.S het algemeen ben ik verslaafd aan de bovenste situatie, niet alleen omdat er geen index, maar omdat het niet gebruiken van full text search methode 😀

Versterkt door Zemanta

Laat een antwoord achter

Uw e-mailadres zal niet worden gepubliceerd. Verplichte velden zijn gemarkeerd *

Anti SPAM *