sql >> Base de Datos >  >> RDS >> Mysql

Búsqueda de TEXTO COMPLETO de MySQL en> 1 tabla

Únase después de los filtros (por ejemplo, únase a los resultados), no intente unirse y luego filtrar.

La razón es que pierde el uso de su índice de texto completo.

Aclaración en respuesta al comentario:estoy usando la palabra unir de forma genérica aquí, no como JOIN sino como sinónimo de fusionar o combinar.

Esencialmente estoy diciendo que deberías usar la primera consulta (más rápida), o algo así. La razón por la que es más rápido es que cada una de las subconsultas está lo suficientemente ordenada como para que la base de datos pueda usar el índice de texto completo de esa tabla para hacer la selección muy rápidamente. Unir los dos conjuntos de resultados (presumiblemente mucho más pequeños) (con UNION ) también es rápido. Esto significa que todo es rápido.

La versión lenta termina recorriendo una gran cantidad de datos probándolos para ver si es lo que desea, en lugar de filtrar rápidamente los datos y buscar solo en las filas que es probable que realmente desee.