Introdução aos procedimentos armazenados do MySQL

Resumo : neste tutorial, você aprenderá sobre os procedimentos armazenados do MySQL, incluindo suas vantagens e desvantagens.

Introdução aos procedimentos armazenados

A SELECTinstrução a seguir retorna todas as linhas da tabela customersdo banco de dados de amostra :

SELECT 
    customerName, 
    city, 
    state, 
    postalCode, 
    country
FROM
    customers
ORDER BY customerName;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Esta imagem mostra a saída parcial da consulta:

Quando você usa o MySQL Workbench ou o shell mysql para executar uma consulta no servidor MySQL, o servidor processa a consulta e retorna o conjunto de resultados.

Se você pretende salvar esta consulta no servidor de banco de dados para execução posterior, uma maneira de fazer isso é usando um procedimento armazenado.

A CREATE PROCEDUREinstrução a seguir cria um novo procedimento armazenado encapsulando a consulta acima:

DELIMITER $$

CREATE PROCEDURE GetCustomers()
BEGIN
	SELECT 
		customerName, 
		city, 
		state, 
		postalCode, 
		country
	FROM
		customers
	ORDER BY customerName;    
END$$
DELIMITER ;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por definição, um procedimento armazenado é um conjunto de instruções SQL declarativas armazenadas no servidor MySQL. Neste exemplo, acabamos de criar um procedimento armazenado chamado GetCustomers().

Após salvar o procedimento armazenado, você pode invocá-lo usando a CALLinstrução:

CALL GetCustomers();Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A instrução retorna o mesmo resultado da consulta.

A invocação inicial de um procedimento armazenado envolve as seguintes ações do MySQL:

  • Primeiro, encontre o procedimento armazenado pelo seu nome no catálogo do banco de dados.
  • Segundo, compile o código do procedimento armazenado.
  • Terceiro, armazene o procedimento armazenado compilado em uma área de memória cache.
  • Finalmente, execute o procedimento armazenado.

Se você invocar o mesmo procedimento armazenado novamente na mesma sessão, o MySQL irá executá-lo a partir do cache sem a necessidade de recompilação.

Um procedimento armazenado pode ter parâmetros , permitindo passar valores para ele e recuperar resultados.

Por exemplo, você pode definir um procedimento armazenado que retorne clientes por país e cidade. Neste caso, o país e a cidade são parâmetros do procedimento armazenado. Além disso, um procedimento armazenado pode incorporar instruções de fluxo de controle como IF, CASEe LOOP.

Um procedimento armazenado pode chamar outros procedimentos armazenados ou funções armazenadas , permitindo organizar seu código de maneira mais eficaz.

Observe que no próximo tutorial você aprenderá passo a passo como criar um novo procedimento armazenado .

Vantagens dos procedimentos armazenados do MySQL

Abaixo estão as vantagens dos procedimentos armazenados:

  • Reduza o tráfego de rede – Os procedimentos armazenados ajudam a reduzir o tráfego de rede entre aplicativos e servidores MySQL. Em vez de enviar múltiplas instruções SQL longas, os aplicativos só precisam enviar o nome e os parâmetros dos procedimentos armazenados.
  • Centralize a lógica de negócios no banco de dados – você pode usar procedimentos armazenados para implementar lógica de negócios reutilizável em vários aplicativos. Eles agilizam o processo, reduzindo a necessidade de duplicar a mesma lógica em diversas aplicações e contribuindo com um banco de dados mais consistente.
  • Torne o banco de dados mais seguro – Você pode conceder privilégios específicos a aplicativos, permitindo acesso a procedimentos armazenados específicos sem fornecer quaisquer privilégios às tabelas subjacentes.

Desvantagens dos procedimentos armazenados do MySQL

Além dessas vantagens, os procedimentos armazenados também apresentam desvantagens:

  • Uso de recursos – Se você usar muitos procedimentos armazenados, o uso de memória de cada conexão aumentará significativamente. Além disso, o uso excessivo de operações lógicas nos procedimentos armazenados pode levar ao aumento do uso da CPU, já que o MySQL não está bem projetado para tais operações.
  • Solução de problemas – A depuração de procedimentos armazenados é bastante desafiadora. Infelizmente, o MySQL não possui recursos para depuração de procedimentos armazenados, um recurso disponível em outros produtos de banco de dados corporativos, como Oracle Database e SQL Server .
  • Manutenção – O desenvolvimento e a manutenção de procedimentos armazenados geralmente exigem um conjunto de habilidades especializadas que não são universalmente possuídas por todos os desenvolvedores de aplicativos, podendo causar problemas tanto no desenvolvimento quanto na manutenção de aplicativos.

Resumo

  • Um procedimento armazenado é um wrapper de um conjunto de instruções SQL armazenadas no servidor de banco de dados MySQL.
  • As vantagens dos procedimentos armazenados incluem tráfego de rede reduzido, reutilização aprimorada de código, segurança aprimorada por meio de acesso controlado, implementação simplificada de lógica de negócios e a capacidade de conceder privilégios específicos a aplicativos sem expor estruturas de banco de dados subjacentes.
  • As desvantagens dos procedimentos armazenados incluem o aumento do uso de memória para cada conexão, desafios na depuração devido à falta de ferramentas dedicadas e a necessidade de um conjunto de habilidades especializadas, que nem todos os desenvolvedores de aplicativos podem possuir, levando a dificuldades potenciais tanto no desenvolvimento quanto na manutenção. processos.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *