¿Es útil usar procedimientos almacenados en MySql?

padawanluke Seguir

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Jun 2013
Mensajes
96
Que tal, se que no es pregunta de PHP pero todos que trabajemos con PHP sabemos que el MySql va de la mano.
Yo vengo de las versiones de PHP en donde no se soportaba Store Procedures, a partir de la versión 5 creo que se comenzó a soportar.
Mi consulta es si es recomendable en desarrollos chicos o medianos la utilización de SP o si al utilizar PDO y programar todo en objetos , entonces no haria falta?

Largo la consulta a la comunidad.
 

empardopo

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
16 Jun 2013
Mensajes
29
Buenos días,

yo estoy empezando y la verdad es que no tengo mucha idea sobre PHP pero sí he trabajado con otros lenguajes de programación y te digo que lo recomendable es trabajar con SP en las bases de datos. Sinceramente aquí no lo sé, pero ya te digo que como estoy empezando mi intención era hacerlo así, es decir, intentar usar SPs.

A ver si contesta la gente que controla más del tema.

Saludos
 

Roodaka

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Feb 2013
Mensajes
121
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Te digo mi opinión en base a mi experiencia y conocimientos;

Si tienes los recursos, APROVÉCHALOS; el 90% de las aplicaciones web usan el 10% de los recursos de DBM (DataBase Manager)

un saludo.
 

Kabytes

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Jul 2013
Mensajes
7
En lo personal no recomiendo el uso de Stored Procedures si puedes resolver el problema del lenguaje de programación, en este caso PHP.

Esto lo digo por varias razones, si bien muchos programadores utilizan stored procedures, triggers, etc., en sus bases de datos, es bien sabido que el rendimiento no es tan bueno como el provisto por el lenguaje de programación, en especial a la hora de hacer cálculos, te podría decir que casi siempre es más lento, salvo muy pero muy rara excepción.

Inclusive de cara al mantenimiento del sistema, actualizar un script es mucho más ágil y rápido que actualizar un procedimiento almacenado en la base de datos. Hacer un debug de un Stored Procedures puede ser un verdadero dolor de cabeza, en cambio PHP cuenta con muchísimas herramientas para hacerlo.

Un procedimiento almacenado no devuelve demasiada información cuando las cosas van mal, encontrar un problema puede ser cuestión de horas, inclusive días, esto con PHP no pasa.

También si hablamos de escalabilidad es mucho más fácil escalar PHP que una base de datos con Stored Procedures.

Mi sugerencia es que evites utilizar Stored Procedures siempre que puedas.
 

padawanluke

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Jun 2013
Mensajes
96
En lo personal no recomiendo el uso de Stored Procedures si puedes resolver el problema del lenguaje de programación, en este caso PHP.

Esto lo digo por varias razones, si bien muchos programadores utilizan stored procedures, triggers, etc., en sus bases de datos, es bien sabido que el rendimiento no es tan bueno como el provisto por el lenguaje de programación, en especial a la hora de hacer cálculos, te podría decir que casi siempre es más lento, salvo muy pero muy rara excepción.

Inclusive de cara al mantenimiento del sistema, actualizar un script es mucho más ágil y rápido que actualizar un procedimiento almacenado en la base de datos. Hacer un debug de un Stored Procedures puede ser un verdadero dolor de cabeza, en cambio PHP cuenta con muchísimas herramientas para hacerlo.

Un procedimiento almacenado no devuelve demasiada información cuando las cosas van mal, encontrar un problema puede ser cuestión de horas, inclusive días, esto con PHP no pasa.

También si hablamos de escalabilidad es mucho más fácil escalar PHP que una base de datos con Stored Procedures.

Mi sugerencia es que evites utilizar Stored Procedures siempre que puedas.

Es lo contrario a lo que leo y me dijeron muchos, pero estoy con vos en lo que decis, creo que en la experiencia a la hora de mantener codigo, y cuando el mantenimiento de un sitio web no es responsabilidad de un equipo de desarrolladores, sino de una o dos personas solamente.

Yo soy partidario de separar y encapsular las consultas a la base de datos, en una clase .

lancé la consulta a la comunidad justamente para ver que me decian los demas .

Saludos.
 

marrullas

Delta
Verificado por Whatsapp
Desde
3 Ago 2011
Mensajes
668
Discrepo con lo que opina [MENTION=45372]Kabytes[/MENTION]. Pero para responder la pregunta del hilo te digo basado en mi experiencia que usar o no usar SP depende de las reglas del negocio de tu app. PHP es un lenguaje interpretado que aunque a mejorado la velocidad con respecto a hace algunos años no supera la velocidad en cálculos sobre datos almacenados en RDMS al propio RDMS. Incluso con el mejor sistema de abstracción de base de datos que puedas usar siempre tendrás que luchar contra algo llamado "impedancia" que consume tiempo de procesamiento. Ahora si hablamos de comodidad pues diría que es mejor resolver los problemas sobre el lenguaje directamente.
Todo depende del problema que debas resolver. Ej. Recorrer cantidades de datos muy altas para realizar algún calculo entre ellos (sistemas contables) te aseguro que sera mas rápido en un SP. Que tener que interpretar el lenguaje, hidratar las clases, recorrer los registros, hacer los cálculos etc. desde php.

Es mi opinión respeto la que otros puedan tener aunque no las comparta.
 

padawanluke

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Jun 2013
Mensajes
96
Discrepo con lo que opina [MENTION=45372]Kabytes[/MENTION]. Pero para responder la pregunta del hilo te digo basado en mi experiencia que usar o no usar SP depende de las reglas del negocio de tu app. PHP es un lenguaje interpretado que aunque a mejorado la velocidad con respecto a hace algunos años no supera la velocidad en cálculos sobre datos almacenados en RDMS al propio RDMS. Incluso con el mejor sistema de abstracción de base de datos que puedas usar siempre tendrás que luchar contra algo llamado "impedancia" que consume tiempo de procesamiento. Ahora si hablamos de comodidad pues diría que es mejor resolver los problemas sobre el lenguaje directamente.
Todo depende del problema que debas resolver. Ej. Recorrer cantidades de datos muy altas para realizar algún calculo entre ellos (sistemas contables) te aseguro que sera mas rápido en un SP. Que tener que interpretar el lenguaje, hidratar las clases, recorrer los registros, hacer los cálculos etc. desde php.

Es mi opinión respeto la que otros puedan tener aunque no las comparta.

Eso si , yo tmb siempre tenia en la cabeza que todo los que se ejecute (codigo sql) del lado del motor de base de datos iba a ser mas rapido que en SQL . por ej, hacer un MAX en sql es mas rapido que guardar todos los registros de una base en un array y sacar un maximo mediante php .
 

Torrecilla

1
Ni
Programador
Verificación en dos pasos activada
Suscripción a IA
Desde
2 Feb 2013
Mensajes
3.867
He escuchado que si no te quieres liar con SQL Injection uses NOSql, yo personalmente uso PHP + PDO con sentencias preparadas y de preferencia parámetros bindeados.
 

Jonatan Esquivel

Zeta
Programador
Verificado por Whatsapp
Desde
13 Oct 2011
Mensajes
1.863
Los procedimientos almacenados son mas seguros y se ejecutan mas rápido, aunque yo prefiero usarlos en aplicaciones de escritorio, para web no los uso por simple costumbre de hacer todo en mvc donde todo lo referente a la base de datos lo pongo en una sola capa de paginas php.
 
Arriba