Maison >base de données >tutoriel mysql >Que sont les transactions et les procédures stockées dans MySQL
Dans MySQL, une transaction est une séquence d'opérations de données définie par l'utilisateur, qui comprend un ensemble de commandes d'opération de base de données ; une transaction soumet ou révoque des demandes d'opération au système dans son ensemble pour toutes les commandes, c'est-à-dire cet ensemble de commandes de base de données. sont soit exécutés, soit aucun des deux n'est exécuté, la transaction est donc une unité de travail logique indivisible. Une procédure stockée est un ensemble d'instructions SQL conçues pour accomplir une fonction spécifique ; une procédure stockée est une fonction programmable créée et enregistrée dans la base de données et composée généralement d'instructions SQL et de certaines structures de contrôle spéciales.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Transaction dans MySQL
La transaction de base de données (Transaction) est un mécanisme, une séquence d'opérations de données définie par l'utilisateur, qui comprend un ensemble de commandes d'opération de base de données. Une transaction soumet ou révoque une demande d'opération au système avec toutes les commandes dans leur ensemble, c'est-à-dire que ce groupe de commandes de base de données est soit exécuté, soit non exécuté, la transaction est donc une unité de travail logique indivisible.
Lors de l'exécution d'opérations simultanées sur un système de base de données, les transactions sont utilisées comme la plus petite unité de contrôle, ce qui est particulièrement adapté aux systèmes de bases de données exploités par plusieurs utilisateurs en même temps. Par exemple, les systèmes de réservation des compagnies aériennes, les banques, les compagnies d'assurance et les systèmes de négociation de titres.
Les transactions MySQL sont principalement utilisées pour traiter des données avec des opérations volumineuses et une grande complexité. Par exemple, dans le système de gestion du personnel, si vous supprimez une personne, vous devez supprimer non seulement les informations de base de la personne, mais également les informations liées à la personne, telles que la boîte aux lettres, les articles, etc. les instructions d'opération de base de données constituent une transaction !
Dans MySQL, seules les bases de données ou les tables utilisant le moteur de base de données Innodb prennent en charge les transactions.
Le traitement des transactions peut être utilisé pour maintenir l'intégrité de la base de données et garantir que les lots d'instructions SQL sont tous exécutés ou pas exécutés du tout.
Les transactions sont utilisées pour gérer les instructions d'insertion, de mise à jour et de suppression
De manière générale, les transactions doivent remplir quatre conditions (ACID) : Atomicité (ou indivisibilité), Cohérence), isolement (également appelé indépendance) et durabilité (Durabilité).
Atomicité : toutes les opérations d'une transaction seront soit terminées, soit non terminées, et ne se termineront à aucune étape intermédiaire. Si une erreur se produit lors de l'exécution de la transaction, elle sera restaurée à l'état avant le début de la transaction, comme si la transaction n'avait jamais été exécutée.
Cohérence : l'intégrité de la base de données n'est pas compromise avant le début de la transaction et après la fin de la transaction. Cela signifie que les données écrites doivent respecter pleinement toutes les règles prédéfinies, y compris l'exactitude et la concaténation des données, et que la base de données ultérieure peut spontanément accomplir le travail prédéterminé.
Isolement : la base de données permet à plusieurs transactions simultanées de lire, d'écrire et de modifier ses données en même temps. L'isolement peut empêcher l'incohérence des données due à l'exécution croisée lorsque plusieurs transactions sont exécutées simultanément. L'isolement des transactions est divisé en différents niveaux, notamment lecture non validée, lecture validée, lecture répétable et sérialisable.
Persistance : Une fois la transaction terminée, la modification des données est permanente et ne sera pas perdue même en cas de panne du système.
Procédures stockées dans MySQL
Une procédure stockée est un ensemble d'instructions SQL stockées dans le répertoire de la base de données pour remplir une fonction spécifique. Le but de l'utilisation de procédures stockées est de pré-écrire un travail courant ou complexe avec des instructions SQL et de les stocker sous un nom spécifié. Cette procédure est compilée, optimisée et stockée dans le serveur de base de données, elle est donc appelée procédure stockée. Lorsque vous aurez besoin que la base de données fournisse le même service que la procédure stockée définie à l'avenir, il vous suffit d'appeler "CALL nom de la procédure stockée" pour la compléter automatiquement.
Les instructions SQL couramment utilisées pour faire fonctionner les bases de données doivent d'abord être compilées puis exécutées. Les procédures stockées adoptent une autre approche pour exécuter les instructions SQL.
Une procédure stockée est une fonction programmable qui est créée et enregistrée dans la base de données. Elle se compose généralement d'instructions SQL et de certaines structures de contrôle spéciales. Les procédures stockées sont particulièrement adaptées lorsque vous souhaitez exécuter la même fonction spécifique sur différentes applications ou plateformes.
La version MySQL 5.0 ne prenait pas en charge les procédures stockées auparavant, ce qui réduisait considérablement l'application de MySQL. MySQL prend en charge les procédures stockées depuis la version 5.0, ce qui améliore non seulement la vitesse de traitement de la base de données, mais améliore également la flexibilité de la programmation de la base de données. Les procédures stockées sont une fonction importante de la base de données. Les procédures stockées peuvent être utilisées pour convertir des données et migrer des données. , et la production. Les rapports sont similaires aux langages de programmation. Une fois exécutés avec succès, ils peuvent être appelés à tout moment pour effectuer des opérations fonctionnelles spécifiées.
L'utilisation de procédures stockées peut non seulement améliorer l'efficacité de l'accès aux bases de données, mais également améliorer la sécurité de l'utilisation des bases de données.
Pour l'appelant, la procédure stockée encapsule l'instruction SQL et l'appelant n'a pas besoin de prendre en compte le processus d'implémentation spécifique de la fonction logique. Juste un simple appel, il peut être appelé par des déclencheurs, d'autres procédures stockées et des applications telles que Java, Python, PHP, etc.
Avantages des procédures stockées MySQL
Les procédures généralement stockées aident à améliorer les performances de l'application. Une fois créée, la procédure stockée est compilée et stockée dans la base de données. Cependant, MySQL implémente les procédures stockées de manière légèrement différente. Les procédures stockées MySQL sont compilées à la demande. Après avoir compilé la procédure stockée, MySQL la met en cache et maintient son propre cache de procédures stockées pour chaque connexion. Si l'application utilise la procédure stockée plusieurs fois dans une seule connexion, utilisez la version compilée, sinon la procédure stockée fonctionne comme une requête.
Les procédures stockées aident à réduire le trafic entre l'application et le serveur de base de données car l'application doit envoyer uniquement le nom et les paramètres de la procédure stockée au lieu d'envoyer plusieurs longues instructions SQL.
Les procédures stockées sont réutilisables et transparentes pour toute application. Les procédures stockées exposent l'interface de base de données à toutes les applications afin que les développeurs n'aient pas à développer des fonctionnalités déjà prises en charge dans les procédures stockées.
Les procédures stockées sont sûres. L'administrateur de base de données peut accorder les autorisations appropriées aux applications qui accèdent aux procédures stockées dans la base de données sans accorder d'autorisations aux tables de base de données sous-jacentes.
【Recommandations associées : tutoriel vidéo mysql】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!