Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Ordenación query MySQL con Full text index

Estas en el tema de Ordenación query MySQL con Full text index en el foro de Mysql en Foros del Web. Hola a todos, tengo una duda que no condigo solucionar: tengo una query que utiliza full text index. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT ...
  #1 (permalink)  
Antiguo 06/02/2015, 09:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Ordenación query MySQL con Full text index

Hola a todos,

tengo una duda que no condigo solucionar: tengo una query que utiliza full text index.

Código MySQL:
Ver original
  1. SELECT Campo1 FROM table
  2. where MATCH(SearchField) AGAINST('+text1 +(text2 text3)' IN BOOLEAN MODE) limit 1000,20;

Todo bien. Funciona bien. Esta es concreto, es muy rápida, y me devuelve de la row 1000 a la 1020. Todo OK. El problema está en que yo quiero cambiar el orden a mi antojo. Si añado un campo Orden a la tabla, y después hago un Order by 'OrderField', la query se convierte en muy lenta (3 segundos).

Alguien sabe como hacerlo ? Se le puede especificar al Full Text Index algún tipo de parámetro para que modifique el orden ? Quiero aclarar que el orden en sí no me importa, lo que quiero es que sea diferente en cada ejecución, o que lo pueda modificar de alguna manera.

Muchas gracias por vuestra ayuda.

Última edición por gnzsoloyo; 06/02/2015 a las 09:41
  #2 (permalink)  
Antiguo 06/02/2015, 09:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ordenación query MySQL con Full text index

Por un lado, no, no puedes agregar ningún parámetro al indice, o a las funciones para lograr otros ordenamientos.
Por otro lado, el efecto de ese ORDER BY es normal. Eso es lo que sucede con toda consulta donde se usen ORDER BY o GROP BY, por causa de las propias cláusulas.
Esas cláusulas son asesinas de performance, por lo cual no es aconsejable usarlas a menos que sea estrictamente necesario.
En tu caso, sin conocer mucho de los datos que tienes, yo encararía la cosa haciendo que la consulta genrase una tabla de tipo TEMPORARY, y a esa tabla a leería con ORDER BY RAND().
Siendo que la tabla contendría solo el resultado de la consulta, el cual es rápido, obtener el set de datos con otro orden no debería ser muy lento.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/02/2015, 05:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Ordenación query MySQL con Full text index

Perfecto gnzsoloyo.

Muchas gracias por tu ayuda. Lo haré tal y como indicas.

Etiquetas: full, text
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:38.