Unisciti dopo i filtri (ad es. unisciti ai risultati), non provare a partecipare e poi filtra.
Il motivo è che perdi l'uso del tuo indice fulltext.
Chiarimento in risposta al commento:sto usando la parola join genericamente qui, non come JOIN
ma come sinonimo di unire o unire.
Sto essenzialmente dicendo che dovresti usare la prima query (più veloce) o qualcosa del genere. Il motivo per cui è più veloce è che ciascuna delle sottoquery è sufficientemente ordinata da consentire al db di utilizzare l'indice di testo completo di quella tabella per eseguire la selezione molto rapidamente. Unendo i due set di risultati (presumibilmente molto più piccoli) (con UNION
) è anche veloce. Ciò significa che è tutto veloce.
La versione lenta finisce per esaminare molti dati testandoli per vedere se è quello che vuoi, piuttosto che vagliare rapidamente i dati e cercare solo tra le righe che probabilmente vorrai effettivamente.