Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Os procedimentos armazenados do MySQL os usam ou não


Ao contrário do código de linguagem de programação real, eles:
  • não é portátil (cada banco de dados tem sua própria versão de PL/SQL. Às vezes, versões diferentes do mesmo banco de dados são incompatíveis - eu já vi isso!)
  • não é facilmente testável - você precisa de um real (dev) instância de banco de dados para testá-los e, portanto, testar a unidade de seu código como parte de uma compilação é praticamente impossível
  • não é facilmente atualizável/liberado - você deve eliminá-los/criá-los, ou seja, modificar o banco de dados de produção para liberá-los
  • não tem suporte de biblioteca (por que escrever código quando outra pessoa tem)
  • não são facilmente integráveis ​​com outras tecnologias (tente chamar um serviço da web delas)
  • eles usam uma linguagem tão primitiva quanto o Fortran e, portanto, são deselegantes e trabalhosos para realizar uma codificação útil, por isso é difícil expressar a lógica de negócios, embora normalmente seja esse o objetivo principal deles
  • não oferecem depuração/rastreamento/registro de mensagens etc (alguns dbs podem suportar isso - eu ainda não o vi)
  • falta de um IDE decente para ajudar com sintaxe e vinculação a outros procedimentos existentes (por exemplo, como o Eclipse faz para java)
  • pessoas especializadas em codificá-los são mais raras e mais caras do que codificadores de aplicativos
  • seu "alto desempenho" é um mito, porque eles são executados no servidor de banco de dados que geralmente aumentam a carga do servidor db, portanto, usá-los geralmente reduzirá sua taxa de transferência máxima
  • incapacidade de compartilhar constantes de forma eficiente (normalmente resolvido criando uma tabela e questionando-a de dentro do seu procedimento - muito ineficiente)
  • etc.

Se você tem uma ação muito específica do banco de dados (por exemplo, uma ação na transação para manter a integridade do banco de dados), ou mantém seus procedimentos muito atômicos e simples, talvez você possa considerá-los.

Recomenda-se cautela ao especificar "alto desempenho" antecipadamente. Muitas vezes leva a más escolhas às custas de um bom design e vai te morder muito mais cedo do que você pensa.

Use os procedimentos armazenados por sua conta e risco (de alguém que esteve lá e nunca quer voltar). Minha recomendação é evitá-los como a praga.