Image representing MySQL as depicted in CrunchBase

Vor einiger Zeit schrieb ich über MySQL Volltextsuche 🙂 Heute hatte ich eine sehr interessante Erfahrung, mit einer Anfrage. In der Regel, was die Anwendung sucht nach Ergebnissen fehlt eine andere Tabelle. Wählen Sie eine Haupt- und eine Unter auswählen, die in der WHERE-Teil der Anwendung. Im allgemeinen Skelett und

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

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

Im Allgemeinen elementare Anforderung. Ich schrieb es für 30 sec führen Sie es und steckte Maschine. Nach einem langen und geduldig auf meinen Teil warten oder einfach nur ~ 43 sec . Es spuckte Ergebnis lol . pfff Irrenhaus. Anmeldung Maschine Blick Prozessor ist in der Regel damit beschäftigt fast Ruhezustand. Schock und Horror. Führen Sie erneut anfordern wieder das gleiche Ergebnis. Bumsen WTF. Führen Sie die Anwendung und erklären alles leuchteten – zweite Feld secondTextField nur Volltextsuche без Index, und es gibt eine bescheidene Tablett von etwa 35K Reihen. Wer lesen – Volltextsuche не е индекс. Schon klar Problem schnell ein

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

Und die Dinge fiel in Platz Abfrage in 0.0005 sec 😀

Seien Sie vorsichtig, wie Sie Indizes von ihnen setzen, hängt von Ihrer Grenzrate Anfrage.

p.s Като цяло аз съм си крив за горната ситуация не само защото липсва индекс ами защото не ползва full text search метода 😀

zemanta ausgebaut.