Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przyspieszyć zapytania SELECT .. LIKE w MySQL na wielu kolumnach?

Indeks nie przyspieszyłby zapytania, ponieważ w przypadku kolumn tekstowych indeksy działają na zasadzie indeksowania N znaków, zaczynając od lewej. Kiedy robisz LIKE '%text%', nie możesz użyć indeksu, ponieważ przed tekstem może być zmienna liczba znaków.

To, co powinieneś zrobić, to w ogóle nie używać takiego zapytania. Zamiast tego powinieneś użyć czegoś takiego jak FTS (wyszukiwanie pełnotekstowe), które MySQL obsługuje dla tabel MyISAM. Całkiem łatwo jest również samodzielnie stworzyć taki system indeksowania dla tabel innych niż MyISAM, wystarczy osobna tabela indeksów, w której przechowujesz słowa i ich odpowiednie identyfikatory w rzeczywistej tabeli.

Aktualizacja

Wyszukiwanie pełnotekstowe dostępne dla tabel InnoDB z MySQL 5.6+.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL SERVER – Sztuczka – Uruchamianie SSMS z innym kontem Windows

  2. Przykłady UTC_TIME – MySQL

  3. MySQL:jak uzyskać długość tekstu w kolumnie?

  4. 10 przydatnych wskazówek dotyczących dostrajania wydajności MySQL

  5. Ponowne podporządkowanie uszkodzonego serwera MySQL Master w konfiguracji replikacji półsynchronicznej