Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Pesquisa MySQL FULLTEXT em> 1 tabela


Junte-se após os filtros (por exemplo, junte os resultados), não tente ingressar e depois filtrar.

O motivo é que você perde o uso de seu índice de texto completo.

Esclarecimento em resposta ao comentário:estou usando a palavra join genericamente aqui, não como JOIN mas como sinônimo de mesclar ou combinar.

Estou essencialmente dizendo que você deve usar a primeira consulta (mais rápida), ou algo parecido. A razão pela qual é mais rápido é que cada uma das subconsultas é suficientemente organizada para que o banco de dados possa usar o índice de texto completo dessa tabela para fazer a seleção muito rapidamente. Unindo os dois conjuntos de resultados (presumivelmente muito menores) (com UNION ) também é rápido. Isso significa que a coisa toda é rápida.

A versão lenta acaba percorrendo muitos dados testando-os para ver se é o que você deseja, em vez de selecionar rapidamente os dados e pesquisar apenas as linhas que você provavelmente deseja.