Dołącz po filtrach (np. dołącz do wyników), nie próbuj dołączać, a następnie filtrować.
Powodem jest to, że tracisz możliwość korzystania z indeksu pełnotekstowego.
Wyjaśnienie w odpowiedzi na komentarz:używam tutaj słowa join ogólnie, a nie jako JOIN
ale jako synonim łączenia lub łączenia.
Zasadniczo mówię, że powinieneś użyć pierwszego (szybszego) zapytania lub czegoś podobnego. Powodem, dla którego jest to szybsze, jest to, że każde z podzapytań jest wystarczająco uporządkowane, aby baza danych mogła użyć pełnego indeksu tekstowego tej tabeli do bardzo szybkiego wyboru. Łączenie dwóch (prawdopodobnie znacznie mniejszych) zestawów wyników (za pomocą UNION
) jest również szybki. Oznacza to, że całość przebiega szybko.
Powolna wersja przechodzi przez wiele danych, testując je, aby sprawdzić, czy to jest to, czego chcesz, zamiast szybko przeszukiwać dane i przeszukiwać tylko te wiersze, które prawdopodobnie rzeczywiście chcesz.