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

Najlepszy typ indeksowania, gdy występuje klauzula LIKE

Tak, masz tutaj zabójcę bazy danych

Indeks B-drzewa może być używany do porównywania kolumn w wyrażeniach używających operatorów =,>,>=, <, <=lub BETWEEN. Indeks może być również użyty do porównań LIKE, jeśli argument LIKE jest stałym ciągiem, który nie zaczyna się od znaku wieloznacznego.

Źródło:http://dev.mysql.com /doc/refman/5.7/en/index-btree-hash.html

Oznacza to, że zapytanie LIKE nie może używać indeksu, a następnie masz dwa polubienia połączone operatorem OR. Jeśli to nie wystarczy, dorzuciłeś również porównanie NIE W.

Ale na szczęście drugie wyrażenie LIKE nie jest takie złe, nie zaczyna się od symbolu wieloznacznego. Więc twoją największą nadzieją jest utworzenie złożonego indeksu na usage_guidance, name

Gdybyś mógł opublikować swoją tabelę SHOW CREATE TABLE i kilka wierszy przykładowych danych + oczekiwany wynik, moglibyśmy wpaść na pomysł, czy istnieje sposób na przepisanie tego zapytania.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak w SQL wybrać 2 górne wiersze dla każdej grupy?

  2. 10 najlepszych praktyk w MySQL

  3. Jak wyodrębnić podciąg z ciągu w PostgreSQL/MySQL?

  4. Jak mogę odzyskać moją nazwę użytkownika i hasło MySQL?

  5. Usuń wiele wierszy, zaznaczając pola wyboru za pomocą PHP