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

cuestion de eficiencia... ¿me darían su opinion?

Estas en el tema de cuestion de eficiencia... ¿me darían su opinion? en el foro de Mysql en Foros del Web. Hola que tal? De seguro habrán visto muchos códigos por ahí para paginar resultados. En base a algunos que encontre por Inet decidi cambiar mi ...
  #1 (permalink)  
Antiguo 07/06/2006, 06:00
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
cuestion de eficiencia... ¿me darían su opinion?

Hola que tal? De seguro habrán visto muchos códigos por ahí para paginar resultados. En base a algunos que encontre por Inet decidi cambiar mi viejo paginador por uno hecho por mi.

La cuestion es la siguiente... con mi viejo paginador lo que hacia era un solo 1 query en el que pedía TODOS los registros, y tomaba el total para armar las páginas, algo asi:

$sql = "select * from tabla";
$query = mysql_query($sql) or die(mysql_error());
$total = mysql_num_rows($query);

Ahora... estoy utilizando otra forma... hago dos consultas, con una cuento la cantidad de registros (select count(campo) from tabla). Y con otra pido registros desde X hasta Y (en vez de pedir la totalidad de registros).

Mi pregunta es... si utilizo COUNT para contar TODOS los registros... ¿no estoy en el mismo punto de antes? ¿O acaso count tiene alguna ventaja que hace más eficiente mi nueva versión, apesar de utilizar dos consultas en vez de una sola?

MUCHAS GRACIAS !!
  #2 (permalink)  
Antiguo 08/06/2006, 08:15
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
count() es mas rapido que mysql_num_rows() pues hace varios pasos menos.
Tu select es más especifico, por tanto tienes menos trafico entre servidor y cliente.
  #3 (permalink)  
Antiguo 08/06/2006, 11:30
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
me quedo tranquilo entonces. Gracias claudio!

Ahora... no sabía que "mysql_num_rows()" realizaba una consulta... yo pensaba sinceramente que trabajaba con los datos YA TOMADOS de la query :O

Voy a tener que cambiar mucho codigo de mi sitio si es asi ya que uso MUCHISIMO el mysql_num_rows();

Un saludo y gracias.
  #4 (permalink)  
Antiguo 09/06/2006, 10:41
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Dudo que haga una consulta, pero tiene que recorrer un array al menos.
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 23:49.