sql >> Database >  >> RDS >> Mysql

Hoe SELECT .. LIKE-query's in MySQL op meerdere kolommen te versnellen?

Een index zou de zoekopdracht niet versnellen, omdat voor tekstuele kolommen indexen werken door N-tekens te indexeren, beginnend van links. Als je '%text%' LIKE doet, kan het de index niet gebruiken omdat er een variabel aantal tekens voor tekst kan staan.

Wat je zou moeten doen, is zo'n query helemaal niet gebruiken. In plaats daarvan zou u iets als FTS (Full Text Search) moeten gebruiken dat MySQL ondersteunt voor MyISAM-tabellen. Het is ook vrij eenvoudig om zelf zo'n indexeringssysteem te maken voor niet-MyISAM-tabellen, je hebt alleen een aparte indextabel nodig waarin je woorden en hun relevante ID's in de eigenlijke tabel opslaat.

Bijwerken

Zoeken in volledige tekst beschikbaar voor InnoDB-tabellen met MySQL 5.6+.



  1. Wijzig een MySQL-kolom in AUTO_INCREMENT

  2. Paginering in SQL Server met OFFSET/FETCH

  3. Hoe de datumstijl in PostgreSQL te veranderen?

  4. Primaire sleutels en indexen in Hive-querytaal zijn mogelijk of niet?