Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2009, 15:17
jjmacias
 
Fecha de Ingreso: junio-2005
Mensajes: 22
Antigüedad: 18 años, 9 meses
Puntos: 1
¿Rendimiento optimo: foreach y dos querys o while con una sola query?

Hola,

Tengo una duda (que novedad XD ), según phpbench.com foreach es bastante mas rápido que while, pero el tema esta en lo siguiente:

- Usar IN en la consulta y usar while con mysql_fetch_array.

Código PHP:
$array=array('a' => '1''b' => '2');
$p="SELECT * from blah WHERE id IN ( ".$array." )";
    
$foo=mysql_query($p);
    while(
$b=mysql_fetch_array($foo)){
        echo 
"$b[id]";
    } 
- Usar foreach para dentro ejecutar dos querys y usar mysql_fetch_row.

Código PHP:
$array=array('a' => '1''b' => '2');
$kk=explode(",",$array);
    foreach(
$kk as $c){
    
$foo=mysql_query("SELECT * from blah WHERE id=$c");
        
$b=mysql_fetch_row($foo);
        echo 
"$b[1]";
    } 
En principio, al ejecutar dos querys y explode debería ser mas rápido realizar esto con IN, pero foreach es bastante mas rápido que while y al usar IN en la consulta esta se ralentiza mas pero claro de la otra manera son dos querys, ademas le podemos sumar el tema que los puntos para concatenar también ralentizan.

¿Cual es el método mas optimo?

Estoy un poco perdido en este tema.

Gracias.