Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/10/2009, 14:10
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Cargas de datos muy lentas

Vamos a hacer una prueba.
Me imagino que esta consulta:
Código sql:
Ver original
  1. SELECT COUNT(t_posts_themes.POST_ID) AS TOTAL_POSTS FROM t_posts_themes LEFT JOIN t_posts ON t_posts_themes.POST_ID = t_posts.POST_ID WHERE t_posts_themes.THEME_ID = 7 AND t_posts.POST_options_erased = 0 AND t_posts.POST_enabled = 1 AND t_posts.POST_date_publish <= NOW()
la ejecutas y recoges uno a uno los valores de los conteos.

Une todas las consultas con union y recoge las variables como registros y no como columnas.
Me explico:
cuando ejecutas cada conteo, el valor retornado es: 347 o 346 (etc.) dependiendo del caso. y solo retorna un numero.
la idea es hacer algo como:
Código sql:
Ver original
  1. SELECT COUNT(t_posts_themes.POST_ID) AS TOTAL_POSTS
  2. FROM t_posts_themes LEFT JOIN t_posts ON
  3. t_posts_themes.POST_ID = t_posts.POST_ID
  4. WHERE t_posts_themes.THEME_ID = 7 AND
  5. t_posts.POST_options_erased = 0 AND
  6. t_posts.POST_enabled = 1 AND
  7. t_posts.POST_date_publish <= NOW()
  8. UNION ALL
  9. SELECT COUNT(t_posts_themes.POST_ID) AS TOTAL_POSTS
  10. FROM t_posts_themes LEFT JOIN t_posts ON
  11. t_posts_themes.POST_ID = t_posts.POST_ID
  12. WHERE t_posts_themes.THEME_ID = 6 AND
  13. t_posts.POST_options_erased = 0 AND
  14. t_posts.POST_enabled = 1 AND
  15. t_posts.POST_date_publish <= NOW()
  16. UNION ALL
  17. SELECT COUNT(t_posts_themes.POST_ID) AS TOTAL_POSTS
  18. FROM t_posts_themes LEFT JOIN t_posts ON
  19. t_posts_themes.POST_ID = t_posts.POST_ID
  20. WHERE t_posts_themes.THEME_ID = 5 AND
  21. t_posts.POST_options_erased = 0 AND
  22. t_posts.POST_enabled = 1 AND
  23. t_posts.POST_date_publish <= NOW()
  24. UNION ALL
  25. SELECT COUNT(t_posts_themes.POST_ID) AS TOTAL_POSTS
  26. FROM t_posts_themes LEFT JOIN t_posts ON
  27. t_posts_themes.POST_ID = t_posts.POST_ID
  28. WHERE t_posts_themes.THEME_ID = 2 AND
  29. t_posts.POST_options_erased = 0 AND
  30. t_posts.POST_enabled = 1 AND
  31. t_posts.POST_date_publish <= NOW()
  32. etc....

Asumo que usas funciones como mysql_fetch_array para extraer los datos e ingresarlos en variables php. Desde php podrías almacenar estos valores en un vector mientras recorres la consulta.

Como ayudaría esto?
Pues te ahorra 8 viajes al servidor para sacar la misma información y aunque quede mas compleja te traerá todos los datos igual

Pruebalo y nos cuentas
__________________
Without data, You are another person with an opinion.
W. Edwads Deming