Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Alternatywa dla SQL LIKE
#1
Witam,

Poszukuje alternatywy dla polecenia LIKE w SQL. LIKE jest ciężki i zamula już przy 600k rekordów. Macie jakieś pomysły?
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz
#2
Zacznijmy od tego czego potrzebujesz, wyszukiwarka? Indeksy pozakładane poprawnie?
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#3
Wyszukiwarka w stylu Quick Search poszukująca po name w kilku tabelach bazy danych. Wyszukiwany tekst rozwalamy na wyrazy dodając OR. Czyli
Kod:
SELECT * FROM tabela1 WHERE tabela1.name LIKE %string1% OR tabela2.name LIKE %string1% OR tabela3.name LIKE %string1% OR tabela3.name LIKE %string1% OR tabela1.name LIKE %string2% OR...

Wyszukiwanie rozpoczyna się od wpisania 3-4 znaków
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz
#4
1. Zmiana silnika bazy danych na MyISAM.
2. Przerzucenia tego na Lucene (najlepsze wyjście)
3. Prefixowanie zapytania, czyli usunięcie pierwszego %, w rezultacie masz 'string%'.

Innych pomysłów brak.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#5
Trochę boli te MyISAM bo aplikacja cała gotowa i wykorzystuje klucze obce. No ale pomyślę i dam znać. Dzięki za podpowiedź
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl