sql >> Databasteknik >  >> RDS >> Mysql

Hur snabbar man på SELECT .. LIKE-frågor i MySQL på flera kolumner?

Ett index skulle inte påskynda frågan, eftersom för textkolumner fungerar index genom att indexera N tecken med början från vänster. När du gillar '%text%' kan den inte använda indexet eftersom det kan finnas ett variabelt antal tecken före text.

Vad du borde göra är att inte använda en sådan fråga alls. Istället bör du använda något som FTS (Full Text Search) som MySQL stöder för MyISAM-tabeller. Det är också ganska enkelt att själv göra ett sådant indexeringssystem för icke-MyISAM-tabeller, du behöver bara en separat indextabell där du lagrar ord och deras relevanta ID i själva tabellen.

Uppdatera

Fulltextsökning tillgänglig för InnoDB-tabeller med MySQL 5.6+.



  1. Visualisera data

  2. Skapa MySQL-frågeövervakningsbash-skript

  3. Hur SID skiljer sig från tjänstens namn i Oracle tnsnames.ora

  4. Returnera kolumnvärden före UPPDATERING endast med SQL