• Flock of wintering Barnacle Goose(branta leucopsis)in wadden Sea,East Frisia,lower saxony,Germany

#ADNCLOUD

Innovación en la sociedad digital

Categorías
New Call-to-action

Procedimientos MySQL: ventajas, desventajas y casos de uso

procedimientos mysql
Tiempo de lectura: 4 minutos
Valora el post

Un procedimiento (a menudo denominado procedimiento almacenado) es una subrutina que actúa como un subprograma en un lenguaje informático regular, almacenado en una base de datos. Los procedimientos MySQL tienen un nombre, una lista de parámetros y una o varias declaraciones SQL. La mayoría de los sistemas de bases de datos relacionales son compatibles con los procedimientos almacenados.

Los procedimientos y funciones almacenados de MySQL permiten a los desarrolladores de bases de datos la capacidad de envolver bits útiles de código en un pequeño “paquete” para reutilizar. Se trata de una opción con grandes ventajas y válida para una amplia variedad de casos de uso. En las siguientes líneas los repasamos, sin olvidarnos de sus principales inconvenientes.

New Call-to-action

Ventajas y desventajas de los procedimientos MySQL

Ventajas de los procedimientos MySQL

Recurrir a los procedimientos MySQL puede resultar muy beneficioso. Muestra de ello, son las siguientes ventajas:

  • Aumento del rendimiento de las aplicaciones. Después de crear el procedimiento almacenado, se compila y almacena en la base de datos. Pero MySQL implementa procedimientos almacenados ligeramente diferentes, lo que ayuda a aumentar el rendimiento de las aplicaciones. Los procedimientos MySQL se compilan bajo demanda para después ponerse en un caché. No hay que olvidar que MySQL mantiene su propio caché de procedimientos almacenados para cada conexión. Así, si una aplicación utiliza un procedimiento almacenado varias veces en una sola conexión, se usa la versión compilada; y, de lo contrario, el procedimiento almacenado funciona como una consulta.
  • Mejora de la agilidad. Los procedimientos MySQL son rápidos porque el servidor MySQL aprovecha el almacenamiento en caché. Otra razón que explica su velocidad es que reduce el tráfico de red. Así, por ejemplo, si tenemos una tarea repetitiva que requiere verificación, repetición de bucles, múltiples declaraciones y ninguna interacción del usuario, lo hace con una sola consulta a un procedimiento que está almacenado en el servidor.
  • Los procedimientos MySQL son portátiles porque cuando escribimos nuestro procedimiento almacenado en SQL, sabemos que se ejecutará en todas las plataformas en las que se ejecuta MySQL, sin obligarnos a instalar un paquete adicional de entorno de ejecución ni a establecer permisos para la ejecución del programa en el sistema operativo.
  • Transparencia y posibilidad de reutilización. Los procedimientos almacenados exponen la interfaz de la base de datos a todas las aplicaciones para que los desarrolladores no tengan que desarrollar funciones que ya sean compatibles con ellos. Por lo tanto, podemos decir que los procedimientos MySQL son reutilizables y transparentes.
  • Los procedimientos MySQL son seguros, al permitir al administrador de la base de datos otorgar los permisos adecuados a las aplicaciones que acceden a los procedimientos almacenados en la base de datos, sin necesidad de conceder ningún permiso en las tablas de la base de datos subyacente.

Desventajas de los procedimientos MySQL

Utilizar los procedimientos almacenados de MySQL está ligado a algunos inconvenientes que merece la pena conocer. Se trata de los siguientes:

  • Aumentan el uso de la memoria: si usamos muchos procedimientos almacenados, el uso de la memoria de cada conexión que utiliza esos procedimientos se incrementará sustancialmente.
  • Restringidos para una lógica de negocios compleja: en realidad, las construcciones de procedimientos almacenados no están diseñadas para desarrollar una lógica de negocios compleja y flexible.
  • Difíciles de depurar. Es difícil depurar procedimientos almacenados. Solo unos pocos sistemas de administración de bases de datos permiten hacerlo.
  • Difíciles de mantener: no es fácil desarrollar y mantener procedimientos almacenados. El desarrollo y mantenimiento de procedimientos almacenados a menudo requiere un conjunto de habilidades especializadas que no todos los desarrolladores de aplicaciones poseen.

¿Cuándo conviene utilizar procedimientos almacenados?

Existen situaciones en las que usar procedimientos almacenados es fuente de beneficios. Es lo que sucede en los siguientes casos:

  • Cuando se deben ejecutar tareas programadas. En este caso, los procedimientos almacenados pueden programarse para ejecutarse solo una vez al día. Esto podría ser útil para archivar e inicializar ciertas tablas diarias.
  • Si es preciso compartir lógica de negocios no complicada con otras aplicaciones. Esto es útil, por ejemplo, en el caso de sistemas que publican pagos, facturan a los clientes o realizan un análisis de los datos que se pueden lograr con los estados de cuenta de SQL y pueden ser reutilizados por sistemas de terceros.
  • Cuando se debe controlar el acceso a ciertas tablas en función de los identificadores de usuario. Es posible que la base de datos tenga tablas con datos confidenciales y que no se quiera que ciertos usuarios tengan acceso directo. En ese caso, se pueden implementar procedimientos almacenados para las mismas.
  • En los casos en que hay que procesar datos de tablas con una gran cantidad de registros en una red con ancho de banda limitado. Los procedimientos almacenados permiten ejecutar dichas tareas directamente en el servidor de la base de datos.

Además de estos casos de uso, existe una regla de oro que hay que tener en cuenta al utilizar procedimientos MySQL: es necesario tener suficientes recursos en el servidor. Los procedimientos almacenados transfieren el procesamiento al servidor y, por eso, antes de utilizarlos, conviene asegurarse de que se cuenta con los medios necesarios en el servidor para poder gestionar la carga.

Créditos fotográficos: flownalaska

New Call-to-action

Entradas relacionadas

Deja un comentario

No hay comentarios

Todavía no hay ningún comentario en esta entrada.