Cual es la manera optima de controlar los QUERYS para aplicaciocnes web

alisanto

Lanero Regular
29 Nov 2003
91
que tal compañeros
me tope con un gran problema con los querys; q por mas sencillo q paresca desarrollar una consulta este se va complicando cada vez mas cuando de miles de registros se trata, aun soy un poco nuevo en esto de las base de datos pero eh escuchado de PAQUETES, STORE PROCEDURES, que pueden aliviar la carga a una aplicacion web por ejemplo

en mi caso eh desarrollado bajo PHP un script q realiza una consulta con el query dentro del script y pues eh notado q por ratos la respuesta no se llega a dar, por q revaza el tiempo otorgado del servidor apache al script que por lo general es de 30 segundos, al principio seria conveniente modificar este tiempo en el PHP.INI pero es una solucion engañosa en si el problema persiste solo q damos una solucion engañosa, la idea es optimizar el tiempo de respuesta a nivel que obtenga resultados satisfactorios en el menor itempo posible y a la vez tener bien administrado todos mis QUERYS

es gracias a esta duda q espero que sus comentarios me puedan ayudar, como siempre muchas gracias a todos...
 
Es tan relativo todo .... le toca ver como hace los queries y observar lo siguiente:

1. Seleccionar solo lo que necesita a veces usan SELECT * para un campo o menos de la mitad de lo que la tabla tiene ....

2. La normalizacion que tenga, una BD sin normalizar requiere instrucciones SQL muy complejas y lentas de compilar.

3. Uso de indices para acelerar, generalmente cuando obtiene un listado de esos emplea un criterio sobre un campo, pues apliquele indice y vera como se le acelera, esto es comun ....

4. Si el listado es muy grande paginelo, resultados de 10 en 10 o como guste y no el chorrero


Estos son uno de los inconvenientes mas comunes ....


Cheers ! ..
 
Cordial Saludo

Si estas usando una base de datos que soporte procedimientos almacenados o paquetes y funciones (Oracle, SQL Server, MySql), te recomiendo que migres todas las sentencias de sql que tengas en las paginas hacia estos procedimientos, de modo que la ejecucion sea mas rapida ya que el motor de la base de datos asume la carga de la consulta y tambien te queda mas facil la depuracion del codigo.

Tambien fijate si hay sentencias que son muy repetitivas y opta por migrarlas a funciones, las cuales las podes llamar desde los procedimientos almacenados.

Si estas trabajando con access, podes mejorar el rendimiento y el tiempo de respuesta realizando consultas anidadas y trayendote solo los datos que consideres necesarios.

Suerte

Dopher :p
 
Hola a todos... disculpen la pregunta saben si la version de mysql que soporta store procedures.. que version es .. y es gratis....?????... (pos he escuchado que no)..

Como opinion.. estoy deacuerdo con EL_RULAS dado que son cositas ha tener en cuenta..
 
Hace ratos lei que eso se iba a soportar desde la 4.1 sin embargo la ultima vez vi que estaba en beta, no le recomiendo mucho usar store procedure en mysql, ese cuento falta madurarlo para ese motor ...

Postgres se los soporta pero super bien :)


.. Ah y sigue siendo gratis ...
 
Texto Originalmente Escrito por poppetmaster
Hola a todos... disculpen la pregunta saben si la version de mysql que soporta store procedures.. que version es .. y es gratis....?????... (pos he escuchado que no)..

Como opinion.. estoy deacuerdo con EL_RULAS dado que son cositas ha tener en cuenta..
La version que buscas se llama MaxDB, es la base de datos que sacaron cuando decidieron tomar SAP y mejorarla.....
http://www.mysql.com/products/maxdb/
 
me parecen muy claras las recomendaciones dadas por mis compañeros, en especial dado por el tiempo de respuesta me eh puesto a comparar cuando la sentencia esta amarrada a la base de datos y cuando este alojado en la aplicacion pues se ve una gran diferencia, en cuanto al orden pues pasaremos a organizar los querys dentro de ellas

bueno por ahora estoy trabajando con PHP quisiera saber si han utilizado los STORE PROCEDURES lo estoy investigando y paso probarlos, a penas encuentre la forma, les estare comentando
 
Ademas de lo que dijo El_Rulos y en el caso de tenes una base de datos muy grande.. (con muchos registros ... millones)... es bueno balancear la carga de los discos, partir la base de datos en trozos y indexar los trozos, de modo que el acceso sea mas rapido.

Otra idea que le puede servir es separar la base de datos en diferentes maquinas/procesadores/discos, para esto el esquema que se uso para crear la base de datos debe estar bien normalizada para poder poner tablas/trozos en diferentes espacios fisicos, y obviamente.. la base de datos debe soportar el paralelismo.

Ahora.. creo que esos son problemas para bases de datos muy grandes.. que nunca he tocado.. eso es meramente teoria... mientras tanto empieze por normalizar la base de datos.. y crear indices... haga un calculo de cuales son los queries que hace con mas frecuencia y haga un indice que le agilize esa busqueda. y yalas..

:)
 
Hola alisanto... sobre los store procedures los ha trabajado en postgres(pos apenas empece a trabajar con eso y me ha ido bien),,, pos cualquier cosa a la orden, con referencia a php es lo mismo que estuvieras ejecutando un query la diferencia es que va ser a una funcion y depende de que retorna la funcion,,,, del resto es lo mismo....
 

Los últimos temas