Maison  >  Article  >  base de données  >  MySQL doit-il s'engager ?

MySQL doit-il s'engager ?

WBOY
WBOYoriginal
2022-04-27 19:04:334597parcourir

Dans MySQL, la nécessité d'un commit dépend du moteur de stockage : 1. S'il s'agit d'un moteur de stockage qui ne prend pas en charge les transactions, tel que myisam, vous n'avez pas besoin d'utiliser le commit ; prend en charge les transactions, telles que innodb, vous devez savoir si la transaction est automatiquement validée, donc la validation doit être utilisée.

MySQL doit-il s'engager ?

L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.

Mysql nécessite-t-il une validation ?

Le fait que MySQL nécessite une validation lors des ajouts, des suppressions et des modifications dépend de votre moteur de stockage.

  • S'il s'agit d'un moteur qui ne prend pas en charge les transactions, comme myisam, cela n'aura aucun effet, qu'il soit validé ou non.

  • S'il s'agit d'un moteur qui prend en charge les transactions, tel qu'innodb, vous devez savoir si la chose prend en charge la soumission automatique des transactions (c'est-à-dire la validation)

Pour voir si votre base de données est automatiquement validée, vous pouvez utiliser

mysql> show variables like '%autocommit%';

pour vérifier, s'il est désactivé, il ne sera pas automatiquement validé et nécessite une opération de validation manuelle (vous pouvez directement la commande "commit;" sur la ligne de commande), sinon il sera automatiquement validé.

Connaissances étendues :

Il existe trois types de données soumises : la soumission explicite, la soumission implicite et la soumission automatique.

Ces trois types sont expliqués ci-dessous.

Soumission explicite

La soumission effectuée directement à l'aide de la commande COMMIT est une soumission explicite.

Soumission implicite

Une soumission effectuée indirectement à l'aide de commandes SQL est une soumission implicite. Ces commandes sont :

ALTER, AUDIT, COMMENT, CONNECT, CREATE, DISCONNECT, DROP, EXIT, GRANT, NOAUDIT, QUIT, REVOKE, RENAME.

Soumission automatique

Si AUTOCOMMIT est défini sur ON, une fois les instructions d'insertion, de modification et de suppression exécutées, le

système soumettra automatiquement, ce qui est une soumission automatique. Le format est : SQL>SET AUTOCOMMIT ON 

COMMIT / ROLLBACK Soyez prudent lorsque vous utilisez ces deux commandes. COMMIT/ROLLBACK sont utilisés après l'exécution d'instructions DML (INSERT/DELETE/UPDATE/SELECT). Une fois l'instruction DML exécutée, les données traitées seront placées dans le segment d'annulation (à l'exception de l'instruction SELECT), en attendant que l'utilisateur s'engage (COMMIT) ou qu'il soit annulé (ROLLBACK). Lorsque l'utilisateur exécute COMMIT/ROLLBACK, ce sera le cas. être placé dans le segment de restauration. Les données du segment seront supprimées.

(Une fois l'instruction SELECT exécutée, les données sont stockées dans le pool partagé. Lorsque vous fournissez les mêmes données à d'autres personnes à interroger, elles sont extraites directement du pool partagé sans avoir à les extraire de la base de données, ce qui améliore la vitesse. de requête de données.)

Toutes les instructions DML doivent être soumises explicitement, c'est-à-dire que COMMIT doit être exécuté après l'exécution de l'instruction DML. D'autres, comme les déclarations DDL, sont soumises implicitement. En d'autres termes, après avoir exécuté ces instructions non-DML, la base de données a déjà effectué une validation implicite, telle que CREATE TABLE. Après l'exécution du script, la table a été créée et vous n'avez plus besoin d'effectuer une validation explicite.

Apprentissage recommandé : 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn