sql >> Database >  >> RDS >> Mysql

Wat is een fulltext index en wanneer moet ik deze gebruiken?

In databases worden indices meestal gebruikt om de prestaties te verbeteren bij het zoeken naar iets dat is gedefinieerd in uw waar-clausule. Maar als het gaat om het filteren van tekst, b.v. met iets als WHERE TextColumn LIKE '%searchstring%' dan zijn zoekopdrachten traag, omdat de manier waarop reguliere database-indexen werken, is geoptimaliseerd voor overeenkomsten met de 'hele inhoud' van een kolom en niet slechts een deel ervan. Met name de LIKE-zoekopdracht die jokertekens bevat, kan geen gebruik maken van enige vorm van index.

Zoals vermeld in de opmerking hieronder, heeft MySQL de MATCH () ... AGAINST . nodig syntaxis om te zoeken in een volledige tekstindex; BTW dit varieert afhankelijk van de database leverancier. In MS SQL kunt u CONTAINS . gebruiken dus houd hier rekening mee wanneer u van plan bent ook andere databases te ondersteunen.

Fulltext-indexen werken beter voor gewone tekst, omdat ze zijn geoptimaliseerd voor dit soort kolommen. Zeer vereenvoudigd:ze splitsen de tekst op in woorden en maken een index over de woorden en niet over de hele tekst. Dit werkt een stuk sneller voor tekstzoekopdrachten bij het zoeken naar specifieke woorden.



  1. NU() in de database invoegen met CodeIgniter's Active Record

  2. Percona-distributie bewaken voor PostgreSQL - Belangrijkste metrische gegevens

  3. Hoe te bestellen op twee kolommen in SQL?

  4. Mysql-query met mysql-variabele werkt niet in Zend Framework 1