Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL FULLTEXT Cerca in>1 tabella

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.