Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво е пълнотекстов индекс и кога трябва да го използвам?

В базите данни индексите обикновено се използват за подобряване на производителността при търсене на нещо, дефинирано във вашата клауза where. Когато обаче става въпрос за филтриране на някакъв текст, напр. използвайки нещо като WHERE TextColumn LIKE '%searchstring%' тогава търсенията са бавни, тъй като начинът, по който работят обикновените индекси на база данни, са оптимизирани за съвпадения спрямо „цялото съдържание“ на колона, а не само част от нея. По-конкретно търсенето LIKE, което включва заместващи знаци, не може да използва какъвто и да е вид индекс.

Както беше споменато в коментара по-долу, MySQL се нуждае от MATCH () ... AGAINST синтаксис за търсене в индекс на пълен текст; BTW това варира в зависимост от доставчика на базата данни. В MS SQL можете да използвате CONTAINS така че имайте това предвид, когато планирате да поддържате и други бази данни.

Индексите на пълен текст работят по-добре за обикновен текст, защото са оптимизирани за този тип колони. Много опростено:Те разделят текста на думи и правят индекс върху думите, а не върху целия текст. Това работи много по-бързо при текстово търсене, когато търсите конкретни думи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какъв е препоръчителният начин за свързване с MySQL от Go?

  2. Изхвърляне на MySQL таблици в JSON с Golang

  3. Изберете увеличено цяло число

  4. грешка в разделителя на mysql

  5. Как да намерите йерархичния път за представяне на дърво