Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2015, 05:02
ersito
 
Fecha de Ingreso: julio-2008
Mensajes: 84
Antigüedad: 15 años, 9 meses
Puntos: 0
Query que cuelga el ordenador (para Búsqueda Avanzada)

Hola a todos. Tengo un problema al intentar programar la Búsqueda Avanzada de mi web.

Tengo las siguientes tablas en mi BBDD (que, según entiendo, es la correcta conforme a las Formas de Normalización):

items, que contiene los objetos a buscar (80.000 registros).

atributo_1, que contiene el listado de los posibles valores del atributo 1 (1.000 registros)
interrelacion_1, relaciona el ID del ítem con los valores que tiene para el atributo 1, que pueden ser 0, 1, 2, etc (3.000 registros)
atributo_2, que contiene el listado de los posibles valores del atributo 2 (10.000 registros)
interrelacion_2, relaciona el ID del ítem con los valores que tiene para el atributo 2, que pueden ser 0, 1, 2, etc (30.000 registros)
...
atributo_7, que contiene el listado de los posibles valores del atributo 7 (5.000 registros)
interrelacion_7, relaciona el ID del ítem con los valores que tiene para el atributo 7, que pueden ser 0, 1, 2, etc (9.000 registros)

La query que uso para realizar la búsqueda es la siguiente.
El problema es que cuando lanzo la query se me cuelga el ordenador.

Código MySQL:
Ver original
  1. FROM items, atributo_1, interrelacion_1 , atributo_2,  interrelacion _2, ...,  atributo_7,   interrelacion _7
  2. WHERE items.item_id = interrelacion_1.item_id
  3. AND interrelacion_1.type_id = atributo_1.type_id
  4. AND items.item_id = interrelacion _2.item_id
  5. AND interrelacion _2.genre_id = atributo_2.genre_id
  6. ...
  7. AND items.item_id = interrelacion _7.item_id
  8. AND interrelacion _7.genre_id = atributo_7.siete_id
  9. AND items.item_name_en LIKE CONCAT('%','aaa','%')
  10. AND atributo_1.type_id != -1
  11. AND atributo_2.genre_id != -1
  12. ...
  13. AND atributo_7.siete_id != -1
  14. AND items.rating >= 0
  15. AND items.issue_year >= 1900
  16. AND items.issue_year <= 3000



Gracias de antemano por vuestra ayuda.

Última edición por gnzsoloyo; 13/07/2015 a las 05:34