¿Son los procedimientos almacenados MySQL una mala práctica?

Descubre por qué los procedimientos almacenados MySQL pueden resultar beneficiosos y en qué situaciones resulta más conveniente evitar recurrir a ellos.


Los procedimientos almacenados MySQL se han convertido en una de las herramientas preferidas para cálculos de datos complejos, desempeñando un papel importante. Sin embargo, los procedimientos almacenados MySQL también causan algunos inconvenientes. Por ejemplo, muchas de sus funciones son problemáticas, difíciles de eliminar o migrar; y hay algunas bases de datos con procedimientos almacenados MySQL bastante débiles. Estos problemas a veces afectan seriamente la eficiencia de los desarrolladores de bases de datos.

procedimientos almacenados mysql

Créditos fotográficos: canjoena

Los procedimientos almacenados MySQL pueden resultar beneficiosos

Los procedimientos almacenados MySQL promueven la agilidad, al ayudar con la velocidad. También facilitan la reutilización de código y la encapsulación (dos pilares del desarrollo de software). Además, pueden convertirse en un aliado en términos de seguridad, ya que tienen capacidad para proteger de los ataques de inyección de SQL y pueden otorgar y revocar permisos en un proceso almacenado individualmente.

 

Descárgate aquí la guía "Qué significa Hadoop en el mundo del Big Data" y  resuelve todos los desafíos Big Data. 

 

Sin embargo, para evitar sus inconvenientes, es preciso tener claro dónde y cómo se deben usar los procedimientos almacenados MySQL:

  1. Control de acceso. Pueden emplearse para permitir cláusulas de SQL arbitrarias en entornos de desarrollo y UAT, y prohibirlas en entornos de sistema y producción. De esta forma, cualquier cláusula que llegue al sistema o a producción podría ser revisada por los desarrolladores y DBAs.
  2. Lógica escalable. Los procedimientos almacenados MySQL también son útiles en situaciones en las que no es posible escalar el servidor de aplicaciones (ni en entornos cloud ni en on premise). Si se cuenta con suficiente capacidad en el back-end de la base de datos se podría trasladar allí la lógica de negocio.
  3. Agregación de datos. Otra situación en la que pueden usarse es cuando una aplicación requiere datos que deben transponerse o agregarse desde múltiples consultas o vistas. Disponer de este tipo de procedimientos hace posible llevar a cabo la descarga desde la aplicación en la base de datos.

En resumen, podría afirmarse que los procedimientos almacenados MySQL son excelentes para acelerar ciertas operaciones de base de datos. En la práctica, sólo habría que tener en cuenta que, a nivel de arquitectura, convendría dejar toda la lógica en la capa empresarial de la aplicación y emplear los procedimientos almacenados MySQL de forma específica para mejorar el rendimiento cuando la evaluación comparativa indique que está garantizado.

 

Situaciones en las que hay que evitar recurrir a los procedimientos almacenados MySQL

Existen algunos momentos en los que es preferible no usar los procedimientos almacenados MySQL. Se trata de las siguientes:

  • Cuando se consideran como el único mecanismo de defensa contra la inyección de SQL.
  • Si se pretende extender su uso más allá de la recopilación de datos hasta entrar en territorio de una lógica compleja. Algo que debe evitarse porque podría ser considerado como lógica de negocios y, por tanto, tendría que alojarse en otro lugar.
  • Cuando las bases de datos son el único lugar que contiene los procesos de tienda, puesto que éstos deberían tratarse del mismo modo que se trata el código fuente C # o Java.

 

Seguramente sean más los beneficios que las desventajas de emplear los procedimientos almacenados MySQL en proyectos big data, pero, cuando no se sabe a ciencia cierta hasta dónde se puede llegar con ellos, es mejor no arriesgarse para evitar consecuencias.

 

hadoop y el bigdata

Artículos relacionados

Subscríbete a nuestro blog y recibe las últimas actualizaciones sobre gestión de datos.

Descubre contenido nuevo todos los días para profundizar la transformación digital en tu organización.