optymalizuj tabele do wyszukiwania za pomocą klauzuli LIKE w MySQL
Buduję funkcję wyszukiwania dla części wiadomości w mojej witrynie i mam bazę wiadomości z nieco ponad 9.000.000 wierszy i indeks na stroniesender
, subject
, imessage
pola. Miałem nadzieję użyć klauzuli mysql LIKE w moim zapytaniu, na przykład (ex)
WYBIERZsender
, subject
, message
ZMessages
GDZIEmessage
LIKE '% EXAMPLE_QUERY%';
odzyskać wyniki. niestety, MySQL nie używa indeksów, gdy obecny jest wiodący symbol wieloznaczny, i jest to konieczne, aby zapytanie wyszukiwania mogło pojawić się w dowolnym miejscu wiadomości (tak działają symbole wieloznaczne, nie?). Zapytania sąbardzo bardzo wolno nie mogę też używać indeksu pełnotekstowego z powodu irytującej reguły 50% (po prostu nie mogę sobie pozwolić na tak duże wykluczenie). Czy mimo to (lub nawet jakakolwiek alternatywa dla tego) optymalizować kwerendę za pomocą takich i dwóch symboli wieloznacznych? Każda pomoc jest doceniana.