2010-03-20 11 views

Respuesta

27

MySQL puede usar un índice si su consulta se parece a foo LIKE 'abc%' o foo LIKE 'abc%def%'. Puede usar el índice para cualquier porción o cadena antes del primer comodín. Si necesita hacer coincidir una palabra en cualquier lugar dentro de una cadena, puede considerar utilizar los índices FULLTEXT en su lugar.

Más detalles sobre índices: http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html

búsqueda de texto completo: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

+0

en esencia, si el índice de una columna con B + índice de árbol, eso es suficiente. Automáticamente MySql busca más rápido para consultas LIKE – Antony

4

Bueno, la optimización más simple sería tener un prefijo constante (por ejemplo, en lugar de "test%""%test" o "%test%") ya que ello permitirá que el motor a reducir el espacio de búsqueda usando los índices. Sin embargo, eso no es posible en todas las situaciones.

A veces, un paso de preprocesamiento puede convertir una búsqueda comodín en una búsqueda de igualdad ordinaria o de texto completo. Obtendrá más al encontrar una forma de estructurar sus datos para que no requiera una búsqueda con comodines en lugar de tratar de optimizarlos.