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

zoptymalizuj tabele pod kątem wyszukiwania za pomocą klauzuli LIKE w MySQL

Powinieneś użyć indeksów pełnotekstowych (mówiłeś, że nie możesz), samodzielnie zaprojektować wyszukiwanie pełnotekstowe lub odciążyć wyszukiwanie z MySQL i użyć Sphinx/Lucene. Dla Lucene możesz użyć implementacji Zend_Search_Lucene z Zend Framework lub użyć Solr.

Normalne indeksy w MySQL to B+Drzewa i nie można ich używać, jeśli nie jest znany początek ciągu (a tak jest w przypadku, gdy na początku masz symbol wieloznaczny)

Inną opcją jest samodzielne zaimplementowanie wyszukiwania przy użyciu tabeli referencyjnej. Podziel tekst na słowa i utwórz tabelę zawierającą słowo, record_id. Następnie w wyszukiwaniu dzielisz zapytanie na słowa i szukasz każdego ze słów w tabeli referencyjnej. W ten sposób nie ograniczasz się do początku całego tekstu, a jedynie do początku danego słowa (a i tak dopasujesz resztę słów)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zacznij wielką literę wielu słów w kolumnie bez CAP_FIRST

  2. przekonwertuj wynik mysql na json z poprawnymi typami

  3. Zapytanie MySQL, pogrupuj według, a następnie uporządkuj według najnowszych zgrupowanych z warunkiem

  4. Skanowanie tabeli mysql od dołu

  5. Jak podzielić pojedynczy wiersz na wiele kolumn w mysql