C'est une question assez intéressante. Je ne pense pas qu'il existe un moyen précis de déterminer si l'émission d'un commit fera ou non une différence dans la session que vous exécutez.
Vous pouvez voir les transactions avec show innodb status
ou afficher l'état innodb du moteur
mais je ne pense pas que vous puissiez émettre un commit sur ces transactions.
INNODB_TRX
table dans information_schema affichera les transactions en cours d'exécution :https ://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html
et encore une fois, vous ne pouvez pas faire grand-chose pour les forcer. Vous pouvez les annuler en supprimant le processus associé.
Si vous exécutez une transaction en utilisant START TRANSACTION dans une procédure stockée, vous pouvez gérer la validation et la restauration manuellement. Vous pouvez même définir la validation automatique à 0 pour contrôler quand revenir en arrière et quand valider.