La indexación regular no se puede usar para mejorar esa consulta. Los índices de MySQL son árboles B, lo que significa que pueden encontrar un prefijo de la columna indexada muy rápidamente. Pero desde tu LIKE
la consulta tiene %
al principio, no hay un prefijo único para buscar. Por lo tanto, cada fila debe escanearse para que coincida con el patrón.
Sin embargo, MySQL también admite la búsqueda de texto completo. Esto crea un índice de todas las palabras en la columna y puede encontrar estas palabras rápidamente. Consulte la documentación para más detalles.
Si usa LIMIT 10
, dejará de escanear tan pronto como encuentre las primeras 10 filas que cumplan las condiciones. A menos que también use ORDER BY
-- entonces tiene que encontrar todas las filas para poder ordenarlas antes de seleccionar las primeras 10.