Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP PDO MySQL et comment traite-t-il vraiment les transactions MySQL ?

https://dev.mysql.com /doc/refman/5.7/en/innodb-autocommit-commit-rollback.html dit :

Ainsi, lorsque vous définissez autocommit=0 dans une session (appelez-la session 1), cela s'ouvre implicitement une transaction et la laisse ouverte indéfiniment.

Le niveau d'isolement de transaction par défaut est REPEATABLE-READ. Ainsi, votre session ne verra pas une vue actualisée des modifications validées du travail des autres sessions jusqu'à ce que la session 1 soit explicitement validée ou annulée.

Votre LOCK TABLES dans une autre session 2 fait provoque une validation implicite, mais la session 1 ne voit pas le résultat car elle ne peut toujours voir qu'une vue isolée des données en raison de son propre instantané de transaction.