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

[SOLUCIONADO] asignar multipes consultas a multiples variables en un script

Estas en el tema de asignar multipes consultas a multiples variables en un script en el foro de Mysql en Foros del Web. Hola, tengo un script en bash que asigna valores de consultas a variables pero es muy lento el script es algo así @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 21/12/2014, 07:22
 
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 0
asignar multipes consultas a multiples variables en un script

Hola, tengo un script en bash que asigna valores de consultas a variables pero es muy lento

el script es algo así

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
hay bastantes mas consultas y se hace muy lento
como podria optimizar las consultas?

Saludos

Última edición por gnzsoloyo; 21/12/2014 a las 07:27
  #2 (permalink)  
Antiguo 21/12/2014, 07:33
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: asignar multipes consultas a multiples variables en un script

Por lo pronto, cualquier consulta con ORDER BY o GROUP BY es ineficiente por definición. Todo ordenamiento o agrupación requiere uso de memoria y tiempo de procesador, lo que conspira contra la perfomance.
Por otro lado, hacer un ordenamiento en una consulta que devuelve un único valor de agregación (SUM(), ROUND(), AVG()), no tiene sentido, porque aplica sobre el total de registros. Si buscases una lista de valores tendría alguna utilidad, pero en ese caso no.

En otras palabras, esto sí tiene sentido:
Código MySQL:
Ver original 
Esto no:
Estas últimas pueden quedar sin el ORDER BY, y sin LIMIT porque de todos modos devolverán un único registro.

Código MySQL:
Ver original
  1. SELECT ROUND(temperature,1) FROM data WHERE date = CURDATE();
  2. SELECT ROUND(average_windspeed,1) FROM data WHERE date = CURDATE();
  3. SELECT ROUND(barometer,1) FROM data WHERE date = CURDATE();

Además, si quieres mejor performance, es mejor que haya indices sobre los campos donde aplica el WHERE, por lo menos...

Finalmente, los nombres de campos no debe usar palabras reservadas. Pueden generar errores de datos o ejecución de dificil detección. Me refiero en especial a uno denominado "DATE", que es un tipo de dato.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: multiples, select, sql, variables
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 14:59.