sql >> Database teknologi >  >> RDS >> Mysql

Hvad er et fuldtekstindeks, og hvornår skal jeg bruge det?

I databaser bruges indekser normalt til at forbedre ydeevnen, når man leder efter noget, der er defineret i din where-klausul. Men når det kommer til at filtrere noget tekst, f.eks. ved at bruge noget som WHERE TextColumn LIKE '%searchstring%' så er søgninger langsomme, fordi den måde, almindelige databaseindekser fungerer på, er optimeret til match mod 'hele indholdet' i en kolonne og ikke kun en del af den. Specifikt kan LIKE-søgningen, som inkluderer jokertegn, ikke gøre brug af nogen form for indeks.

Som nævnt i kommentaren nedenfor har MySQL brug for MATCH () ... AGAINST syntaks for at søge i et fuldtekstindeks; BTW dette varierer afhængigt af databaseleverandøren. I MS SQL kan du bruge CONTAINS så husk dette, når du også planlægger at understøtte andre databaser.

Fuldtekstindekser fungerer bedre til almindelig tekst, fordi de er optimeret til denne type kolonner. Meget forenklet:De deler teksten op i ord og laver et indeks over ordene og ikke hele teksten. Dette virker meget hurtigere for tekstsøgninger, når du leder efter specifikke ord.



  1. PHP:Dynamisk dropdown med optgroup

  2. Hvordan kan jeg slette dublerede rækker i en tabel

  3. Hvordan bruger man pg_stat_activity?

  4. Er der en måde at få en liste over alle aktuelle midlertidige tabeller i SQL Server?