I databaser används vanligtvis index för att förbättra prestanda när man letar efter något som definieras i din where-klausul. Men när det gäller att filtrera viss text, t.ex. använder något som WHERE TextColumn LIKE '%searchstring%'
då går sökningar långsamt, eftersom hur vanliga databasindex fungerar är optimerade för matchningar mot "hela innehållet" i en kolumn och inte bara en del av den. Specifikt kan LIKE-sökningen som innehåller jokertecken inte använda någon form av index.
Som nämnts i kommentaren nedan behöver MySQL MATCH () ... AGAINST
syntax för att söka inom ett fulltextindex; BTW detta varierar beroende på databasleverantören. I MS SQL kan du använda CONTAINS
så tänk på detta när du planerar att stödja andra databaser också.
Fulltextindex fungerar bättre för vanlig text, eftersom de är optimerade för denna typ av kolumner. Mycket förenklat:De delar upp texten i ord och gör ett register över orden och inte hela texten. Detta fungerar mycket snabbare för textsökningar när du letar efter specifika ord.