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

Hvordan man fremskynder SELECT .. LIKE-forespørgsler i MySQL på flere kolonner?

Et indeks ville ikke fremskynde forespørgslen, for for tekstkolonner fungerer indekser ved at indeksere N tegn fra venstre. Når du LIKE '%text%' kan den ikke bruge indekset, fordi der kan være et variabelt antal tegn før tekst.

Hvad du bør gøre er slet ikke at bruge sådan en forespørgsel. I stedet bør du bruge noget som FTS (Full Text Search), som MySQL understøtter til MyISAM-tabeller. Det er også ret nemt selv at lave et sådant indekseringssystem til ikke-MyISAM-tabeller, du skal bare bruge en separat indekstabel, hvor du gemmer ord og deres relevante ID'er i den faktiske tabel.

Opdater

Fuld tekstsøgning tilgængelig for InnoDB-tabeller med MySQL 5.6+.



  1. Viser billede fra PostgreSQL-database, bytea

  2. Et kig på DBCC CHECKCONSTRAINTS og I/O

  3. rumfejl:De kolonner, der returneres af forespørgslen, har ikke felterne feltnavn

  4. Hvordan returnerer jeg en jsonb-array og en række objekter fra mine data?