Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/08/2013, 08:04
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Optimizar consulta Fulltext

Hola natttt:

En realidad no hay mucho qué optimizar en tu consulta, pero revisa de cualquier manera algunos detalles:

1. La relación entre tus tablas realmente es opcional y necesitas un LEFT JOIN, o es mandatoria y en ese caso podrías utilizar un INNER JOIN.

2. revisa que tus campos suario y us_id estén definidos como índices.

3. la opción del LIKE podría servir, pero no tiene tantas ventajas en las búsquedas como lo tiene MATCH-AGAINST. podrías hacer una consulta así:

Código MySQL:
Ver original
  1.   u_id, u_titulo, u_url, u_report, u_fecha, u_votos
  2. FROM urls
  3. LEFT JOIN usuarios ON u_usuario = us_id
  4.   u_titulo LIKE '%Pink%' OR
  5.   u_titulo LIKE '%Floyd%' OR
  6.   u_titulo LIKE '%Breath%'
  7. ORDER BY u_votos DESC
  8. LIMIT 0, 20

Aunque aquí no podrías determinar qué resultado tiene mejor "puntuación" y de cualquier manera no te asegura que tenga mejores resultados que la consulta con MATCH-AGAINST... aun podrías mejorar esta consulta, por ejemplo cambiando los OR's por AND's, para traer sólo los títulos que contengan las tres palabras, independientes del orden... así como está, traería todos los títulos que contengan al menos una de las palabras.

Saludos
Leo.