[SQL] Optymalizacja zapytania z Like

0

Witam

mam takie zapytanie SQL:

select id from slowa where (word Like "musicproof %" or word Like "% musicproof" or word Like "% musicproof %") and word<>"musicproof"

Czy da rade je przyspieszyć? na dużej bazie cieżko idzie.

chodzi o znalezienie w tabeli wiersza z fraza zawierajaca wybrane slowo. Zrobiłem tu szukanie ze spacjami z lewej prawej i z tej i stej

da rade lepiej ?

0

Masz założony indeks?

0

indeksy tu nic nie dadzą bo i tak baza musi przelecieć całą tabelę
poczytaj o full text search, jeśli Twoja baza to ma

0

Jak wiele jest rekordów i szacunkowo jak wiele z nich zawiera %musicprof%. Jeśli stosunkowo niewiele mógłbyś spróbować wykonać swoje zapytanie na wynikach wyszukania wszystkich rekordów LIKE "%musicprof%".

0
hes napisał(a)

Jak wiele jest rekordów i szacunkowo jak wiele z nich zawiera %musicprof%. Jeśli stosunkowo niewiele mógłbyś spróbować wykonać swoje zapytanie na wynikach wyszukania wszystkich rekordów LIKE "%musicprof%".

włąsnie to jest błąd - nie moge pisać "%musicprof%"

zauważyłem że "select id,word form" działą szybciej niz" select word from"

0
hes napisał(a)

..mógłbyś spróbować wykonać swoje zapytanie na wynikach wyszukania wszystkich rekordów LIKE "%musicprof%".

jeśli jest LIKE "%... to i tak baza musi sprawdzić WSZYSTKIE rekordy więc to nic nie da

shivanwk napisał(a)

zauważyłem że "select id,word form" działą szybciej niz" select word from"

na pewno nie dla tego - to które kolumny zwracasz nie ma nic do szybkości

0

najlepiej, jak zmienisz strukturę danych, ale bez wiedzy po co Ci to, nikt nie podpowie jaką strukturę zastosować

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0