Comunidad de diseño web y desarrollo en internet

Mejor forma de obtener registros, varios query o uno y examinar array

Citar            
MensajeEscrito el 24 Ene 2017 05:22 pm
Buenas, soy bastante novato en PHP y MySQL.

Necesito obtener varios registros de la db para una web de vídeos. Concretamente lo que necesito es:

- Vídeo del último programa TIPO 1.
- Vídeo del último programa TIPO 2.
- Vídeo del último programa TIPO 3.

- Último vídeo subido, que no sea ninguno de los 3 anteriores.
- Penúltimo vídeo subido que no sea ninguno de los 4 anteriores.

Ya lo tengo hecho, pero he probado dos métodos, y lo que me gustaría saber es cual es mejor en el sentido de que "maltrate" menos al servidor MySQL.

El primer método es básicamente hacer 5 búsquedas:

$result = mysql_query("SELECT * FROM videos WHERE tipo = 'tipo1' ORDER BY subido DESC" , $link);
$row = mysql_fetch_array($result);
$ULTtipo1 = $row["indice"];

Y lo mismo con los 2 tipos restantes. Para el último y penúltimo, también lo mismo pero indicando que no sean del tipo1,tipo2 y tipo2. En total 5 querys.


Con el segundo método hago un sólo query, y después examino el array (solo los 100 útimos registros):

while ($row = mysql_fetch_array($result))
{
if ($ULTtipo1 == "" && $row['tipo'] == "tipo1") { $ULTtipo1 = $row["indice"]; }
if ($ULTtipo2 == "" && $row['tipo'] == "tipo2") { $ULTtipo2 = $row["indice"]; }
if ($ULTtipo3 == "" && $row['tipo'] == "tipo3") { $ULTtipo3 = $row["indice"]; }
}
luego muevo el puntero al inicio del array para hacer otra búsqueda del ultimo y penúltimo:

mysql_data_seek($result,0);
while ($row = mysql_fetch_array($result))
{
$ind = $row["indice"];
if ($ULTult == "" && $ind != $ULTtipo1 && $ind != $ULTtipo2 && $ind != $ULTtipo3) { $ULTult = $ind; }
if ($ULTpenul == "" && $ind != $ULTtipo1 && $ind != $ULTtipo2 && $ind != $ULTtipo3 && $ind != $ULTult) { $ULTpenul = $ind; }
}


Ambos métodos funcionan, pero me gustaría saber cual de los dos es mejor, en términos de uso del servidor. 5 querys o 1 query con 2 búsquedas en el array.

Saludos

Por Carl84

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ene 2017 06:13 pm
Menos es mas, y un query mejor que 5 ;)

Jorge

Por solisarg

BOFH

13359 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 14 Feb 2017 09:16 am
Gracias, al final he usado ese método, supongo que es mejor una sóla búsqueda y un pequeño bucle en php que hacer 3 ó 4 búsquedas mysql.

Por Carl84

1 de clabLevel



 

firefox

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.