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

Consejo sobre multiples consultas en MySql

Estas en el tema de Consejo sobre multiples consultas en MySql en el foro de Bases de Datos General en Foros del Web. Hola buenas... El tema es el siguiente, la página web que estoy desarrollando se generará dinámicamente con PHP y MySql a partir de la info ...
  #1 (permalink)  
Antiguo 20/07/2005, 16:54
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 20 años, 6 meses
Puntos: 0
Exclamación Consejo sobre multiples consultas en MySql

Hola buenas...

El tema es el siguiente, la página web que estoy desarrollando se generará dinámicamente con PHP y MySql a partir de la info que tengo en 4 tablas.

Lo más facil "me parece" que sería sacar 4 consultas SELECT individuales.

Pero he leído algo sobre consultas multiples con "mysqli_multi_query".

Son un poco + complicadas.

Que ventajas tendré con las multi_query respecto a las tradicionales consultas individuales.
Alguien conoce sobre esto? Gano algo considerable para mi caso respecto al tiempo o alivianar al servidor?

Gracias y Saludos.
  #2 (permalink)  
Antiguo 21/07/2005, 12:55
Avatar de johnnylee  
Fecha de Ingreso: abril-2005
Mensajes: 13
Antigüedad: 19 años
Puntos: 0
Mensaje

no se si esto te sirva... es sacado del manual php:
============
mysqli_multi_query
(PHP 5)

mysqli_multi_query
(no version information, might be only in CVS)

mysqli->multi_query -- Ejecuta una consulta en la base de datos
Descripción
Estilo por procedimientos:

bool mysqli_multi_query ( objeto identificador_de_enlace, cadena consulta)


Estilo orientado a objetos (método):

class mysqli {

bool multi_query ( cadena consulta)

}
La función mysqli_multi_query() ejecuta una o múltiples consultas las cuales estan concatenadas por un punto y coma.

Para obtener los resultados de la primera consulta tu puedes usar mysqli_use_result() o mysqli_store_result(). Todas las consultas subsecuentes pueden ser procesadas usando mysqli_more_results() y mysqli_next_result().

Valores regresados
Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Vea también
mysqli_use_result(), mysqli_store_result(), mysqli_next_result(), mysqli_more_results()

Ejemplos
Ejemplo 1. Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->close();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Ejemplo 2. Estilo por procedimientos

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
do {
/* store first result set */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>


Los ejemplos anteriores producirán la siguiente salida:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer


===========
aunque pensandolo bien, creo ke no, porke estás preguntando por rendimiento... nunca lo he probado, la verdad... pero igual lo probaré y luego te cuento.
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:05.