Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Diferencias de consumo en sentencias SELECT?

Estas en el tema de ¿Diferencias de consumo en sentencias SELECT? en el foro de PHP en Foros del Web. Hola gente espero esten bien! Verán, no se si sea importante... pero me he estado preguntando que tanta diferencia en consumo de memoria o consumo ...
  #1 (permalink)  
Antiguo 12/02/2018, 18:01
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 384
Antigüedad: 2 años, 6 meses
Puntos: 9
¿Diferencias de consumo en sentencias SELECT?

Hola gente espero esten bien!

Verán, no se si sea importante... pero me he estado preguntando que tanta diferencia en consumo de memoria o consumo del servidor (no se como se mide la verdad) existe entre las diferentes sentencias SQL y en que situaciones es recomendable utilizar una antes que otra...

Comenzare diciendo que tipo de sentencias uso en diferentes situaciones y me gustaria que me dijesen si esta bien o no, y de igual manera, cual es el consumo aprox de cada sentencia ejecutada (sentencia individual).

Obtener datos de una tabla
Código MySQL:
Ver original
  1. # Suelo hacerlo asi.
  2. SELECT * FROM `accounts`
  3. # O asi
  4. SELECT `username`,`email` FROM `accounts`
En este caso, nuestro tabla `accounts` tiene 10 a 20 columnas, y por pereza muchas veces usamos el * para no listar columnas que solo necesitamos, ¿esto da igual?, ¿se desperdicia mucho consumo o memoria?

Obtener cantidad de filas registros de X sentencia
Código MySQL:
Ver original
  1. # Asi
  2. SELECT * FROM `accounts`;
  3. # O asi
  4. SELECT COUNT(*) AS TotalAccts FROM `accounts`;
Tengamos en mente que usamos esto desde PHP mediante sentencias preparadas, yo por no saber exactamente como obtener el resultado con el tipo de sentencia COUNT(*) utilizo solo el * y luego con PHPstore_result() obtengo el numero de cuentas, pero la pregunta ahora es... ¿esto es lo mismo? ¿o estamos desperdiciando consumo?

Bueno, espero que alguien me responda, la verdad me interesa crear mis modulos con la mayor optimizacion posible.

saludos y gracias por pasarte!
  #2 (permalink)  
Antiguo 13/02/2018, 05:11
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.320
Antigüedad: 10 años, 1 mes
Puntos: 605
Respuesta: ¿Diferencias de consumo en sentencias SELECT?

Siempre has de hacer una select sobre las columnas que vas a utilizar porque eso optimizará la velocidad de consulta ya que te traerás menos información (solo la necesaria).

Lo mismo para la segunda consulta. Si haces el "Count(*)" entonces será el servidor quien hará el calculo y solo enviará por red el resultado (un entero de 32 bits?). En cambio, si quieres hacer el calculo en tu backend, tendrás que traerte toda la información, leerla y hacer el calculo, con lo que el consumo de ancho de banda será mayor, la carga de CPU del servidor también y además más lento en general.
__________________
Aviso: No se resuelven dudas por MP!



La zona horaria es GMT -6. Ahora son las 09:45.