Cita:
Iniciado por gnzsoloyo
Gracias por la respuesta pero esa construcion de la consulta no es valida.
en la tabla tengo los siguientes campos:
-------------------
id
nombre
apellidos
otros campos.
--------------------
La idea es unir nombre y apellidos en un campo para poder buscar una cadena dentro de esa union de campos y/o por id, no se si me explico.
Siguiendo tu proposicion he contruido la siguiente consulta:
Código SQL:
Ver originalSELECT *
FROM (
SELECT nombre, apellidos, id, CONCAT( nombre, ' ', apellidos ) AS nombre_apellidos
FROM ficha_cliente WHERE id !=1
) AS nombre2
WHERE
(nombre_apellidos LIKE '%m%' OR id LIKE 'ale%') ORDER BY nombre_apellidos
Los tiempos mejoran bastante, aun asi me sigue diciendo con el explain , Using where; Using filesort; , indicando que la consulta debe/puede ser mejorada optimizada.
He probado a crear un indice compuesto por el nombre y apellidos, y forzar el uso del indice mediante FORCE INDEX o USE INDEX, pero entre usar o forzar el indice y no usarlo no se aprecian diferencias.
La tabla actualmente tiene 1500 registros aprox, no se si con este volumen de registros entre usar o no indice puede ser irrelevante y de ahi que no se aprecie diferencia.
Seguire investigando, igualmente si teneis alguna sugerencia lo agradezco.