NE PAS LES UTILISER. Ils sont l'enfer. Un administrateur de base de données ou de celui qui a des connaissances limitées dans d'autres choses que les bases de données comme par opposition à des scripts ou des réseaux web entier peut les défendre, mais ils sont horribles.
Je me suis connecté juste pour poster mon opinion sur cette cause de la façon dont les procédures stockées ont fait beaucoup de ma vie un enfer vivant à une entreprise où je travaille qui ne le marketing d'affiliation. Depuis quelques années ils ont eu un db admin et un autre programmeur avec des connaissances limitées de créer un gigantesque labyrinthe sproc. Lorsque je travaillais pour la société comme un employé à temps plein, 50% de mon travail consistait à régler les problèmes qui ont été causés par sprocs, que ce soit des erreurs d'autorisation, écoute sprocs, etc...vous obtenez un rendement limité d'eux et ils sont durs comme l'enfer de remonter ainsi parmi beaucoup d'autres choses. Ces jours-ci inconvénients de l'utilisation thème sévèrement l'emportent sur les avantages. Heres quelques informations utiles Ive recueillies sur une courte période de temps.
Problèmes avec des procédures stockées
- http://www.tonymarston.net/php-mysql/st ... -evil.html
- Procédures stockées ne peuvent pas facilement se dérouler sur SVN (contrôle de version)
- La plupart des bases de données modernes compiler et dynamique du cache MySQL les mêmes que les procédures stockées.
- Impossible d'utiliser IN () déclarations et si vous transmettez des données sous forme de chaîne de ses plus vulnérable à l'injection MySQL.
- Ne pas utiliser IN () ne permet pas beaucoup de flexibilité de l'utilisation de boucles de requête non imbriquée.
- Modifications de SQL requiert une application tout à fait différente, la modification distincte (Prend beaucoup de temps).
- Impossible de faire des recherches massives sur les procédures stockées
- Extrêmement difficile à modifier dynamiquement requête pour faire des choses comme la boucle comme les états & exploser / valeurs du tableau passe.
- Un soutien de base de données pauvres en MySQLi - Retourne les lignes supplémentaires, des paramètres spéciaux doivent être mis en place.
- Difficile de requêtes en cache localement, car ils peuvent retourner des valeurs différentes.
- Depuis qu'ils sont définis une fois et utilisée plusieurs fois, si des modifications sont apportées à eux, ils doivent être remplacés et d'affecter les pièces TOUS les logiciels.
- Depuis qu'ils sont définis une fois et utilisé à plusieurs reprises, ils appellent généralement plus d'informations que nécessaire.
- Changements dans l'un des problèmes provoquer jouer dans d'autres
- Si vous nourrissez quelque chose sproc, beaucoup de fois vous vous retrouvez en l'appelant sans raison si la valeur est NULL
- Un grand nombre de fois, des modifications doivent être apportées à la demande quand une procédure stockée est modifiée et le plus souvent il s'agit d'une solution inefficace.
- Son peu plus difficile d'obtenir sprocs, comme difficile à gérer les filtres de sécurité sur le côté demande en constante évolution sprocs et quand il ya un trou dans la procédure stockée, la vulnérabilité est pire.
À mon avis, Im ne cherche pas à la traîne, et Im ne va probablement pas réponse en retour à ce fil; Im juste essayer de vous aider à l'homme.
There's no place like 127.0.0.1, badass part is now it's ::1