Foros del Web » Programando para Internet » PHP »

Si uso una CLASE para acceder a mi Base de Datos se..

Estas en el tema de Si uso una CLASE para acceder a mi Base de Datos se.. en el foro de PHP en Foros del Web. Hola a todos. Tengo una curiosidad: Si uso una CLASE para acceder a mi Base de Datos este acceso es mas lento que si fuera ...
  #1 (permalink)  
Antiguo 01/05/2005, 01:05
 
Fecha de Ingreso: abril-2005
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Si uso una CLASE para acceder a mi Base de Datos se..

Hola a todos.
Tengo una curiosidad:

Si uso una CLASE para acceder a mi Base de Datos este acceso es mas lento que si fuera como una consulta normal.

mejor asi?
ej: miclase.buscarenlabd("texto a buscar").

o asai?
mysql_query("select * from tabla where campo as like '%texto a buscar%'");

cual seria la mas eficiente a la hora del rendimiento?

Desde ya muchas gracias!!
  #2 (permalink)  
Antiguo 01/05/2005, 04:27
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Supongo que dependerá de ña esructura y eficiancia de tu clase... y puedes averiguar qué es más eficiente utilizando esta FAQ: http://www.forosdelweb.com/showthrea...262#post419262

... ahora la veo y como que me la cambiaron... juraría antes había código "directo" y no una clase... espero te sirva.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 01/05/2005, 04:32
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Bueno... agrego que en una "forma directa sería algo así:
Código PHP:
<?php
$T_inicio 
microtime();
?>
<html>
... demás código
... consultas.. etc
... y hasta el final:
El script tardó <?php echo substr(microtime() - $T_inicio,0,5); ?> segundos.
</body>
</html>
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 01/05/2005, 21:07
 
Fecha de Ingreso: abril-2005
Mensajes: 40
Antigüedad: 12 años, 8 meses
Puntos: 0
Yo habia pensado en utilizar la funcion microtime paraa medir la velocidsad del script.
Pero siempre aparece un numero distinto, sin gran variacion pero distinto. por ej: 0.002 0.005. Pero cuando el servidor este hasta el cuello de consultas esto es decisivo. Lo unico que me quedaria por hacer es utilizar laa funcion microtime y generar un promedio realizando la consulta 1.000 veces o mas.

bueno les agradesco por colaborar en solucionar este dilema.
suertess
  #5 (permalink)  
Antiguo 01/05/2005, 23:09
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Definitivamente va a ser un poco más rápido utilizando funciones nativas y no funciones definidas por el usuario o clases, ya que al final éstas terminan utilizando también las funciones nativas.
Eso comparando una función normal como
$link = mysql_connect(...);
con una llamada tipo
$db = & new dataBase(...);

Ahora.... como ya te dijeron, el rendimiento total de tu aplicación ya dependerá, además de estos factores, de otros relacionados con el diseño.
En general, uno no utiliza clases pensando en el rendimiento de una funa función específica, sino en otras muchas ventajas como la facilidad de mantenimiento y esto es muy importante sobretodo en aplicaciones grandes.

Saludos
  #6 (permalink)  
Antiguo 02/05/2005, 15:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Así es ..

Una classe en PHP .. como "código" que se ha de ejecutar .. algo hará perder el tiempo a tu script .. Por eso lo mejor es evaluarlo, el tiempo que obtengas va a ser variable pues depende de la carga en ese instante del servidor . .pero más o menos te puedes hacer una idea que tanto hay de diferencia en promédio (toma una muestra de N mediciones y obten su média) entre un sistema y otro.

Pero .. lo principal de usar una classe com "capa de abstracción de tu BD" ofrece normalmente más ventajas a nivel de mantención del código .. a poder cambiar de BD sin cambiar tu código (en el caso que tu classe lo permita .. ) etc.

De hecho .. usar tal vez una "classe" que sólo maneje un RDBMS (ejemplo para sólo Mysql) tal vez no tenga mucho sentido si tu classe no hace otras cosas como por ejemplo centralizar errores, facilitar algunas taréas repetitivas .. etc. Lo que si te va a permitir por ejemplo es hacer consultas a várias BD simultáneamente simplemente instanciando una vez más tu objeto .. cosa que a "funciones simples" es más lio (como para mantener ese código .. hacer cambios ..etc).

Si quieres usar "capas de abstracción de BD" pero te preocupa ese tiempo de proceso lógico y necesario de estas que han de hacer .. puedes usar classes de estas pero en versión "extensión" de PHP siempre y cuando puedas instalarlas en tu servidor .. Algunas de ellas son:

AdoDB
http://adodb.sourceforge.net/

dbx
www.php.net/dbx


Un saludo,
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 08:32.