Muchas gracias por contestar gnzsoloyo.
A ver, ea query es solo un ejemplo que recoge campos para ver qué hay en base de datos. Ya sé que no está bien, pero era solo demostrar que una consulta así no puede hacer que se vuelgue el ordenador (que tarde sí, que casque el ordenador no).
El ejemplo completo que hace que falle sería este.
Esta consulta saca los generos de unos items (hay unos 1000 géneros y la tabla que relaciona géneros con items tiene unos 70.000 registros)
Código MySQL:
Ver originalFROM items i
, item_tipos it
, item_tipos_asociados ita
WHERE i.item_id
= ita.item_id
AND ita.type_id
= it.type_id
Saco los items con el género 3. Hay unos 300 géneros y unos 50.000 relaciones de género-item. Esto devuelve 50 resultados.
Lo mismo para categorías:
Código SQL:
Ver originalSELECT COUNT(i.item_id)
FROM items i, items_categorias ic, items_categorias_asociados icd
WHERE i.item_id = icd.item_id
AND icd.item_category_id = ic.item_category_id
AND ic.item_category_id = 3
Y para las categorias 3. Hay unos 100 géneros y unos 80.000 relaciones de categorias-item. hay 10 reultados
Lo mismo con publishers (60 publishers y 30.000 resultados de relacion publisher-item) y developer (400 developer y 20.000 resultados de relación developer-item):
Código MySQL:
Ver originalFROM items i
, item_publishers ip
, item_publisher_asociados ipa
WHERE i.item_id
= ipa.item_id
AND ipa.publisher_id
= ip.publisher_id
Código MySQL:
Ver originalFROM items i
, item_developers id
, item_developer_asoc ida
WHERE i.item_id
= ida.item_id
AND ida.developer_id
= id.developer_id
Con 40 resultados el primero y 20 el segundo.
Si ahora hago un union de todas las consultas, sólo para ver lo que tarda, ya sé que con solo un union se repiten resultados y no es correcta. Es sólo para ver lo que tarda:
Código MySQL:
Ver originalFROM items i
, item_generos ig
, item_generos_asociados iga
WHERE i.item_id
= iga.item_id
AND iga.genre_id
= ig.genre_id
FROM items i
, item_tipos it
, item_tipos_asociados ita
WHERE i.item_id
= ita.item_id
AND ita.type_id
= it.type_id
FROM items i
, items_categorias ic
, items_categorias_asociados icd
WHERE i.item_id
= icd.item_id
AND icd.item_category_id
= ic.item_category_id
AND ic.item_category_id
= 3
FROM items i
, item_publishers ip
, item_publisher_asociados ipa
WHERE i.item_id
= ipa.item_id
AND ipa.publisher_id
= ip.publisher_id
FROM items i
, item_developers id
, item_developer_asoc ida
WHERE i.item_id
= ida.item_id
AND ida.developer_id
= id.developer_id
Ahí es cuando se cuelga el ordenador y ya no hace nada.
Ese el es problema, ya que no hay tantos resultados para que se cuelgue la máquina.