InnoDB et SET ... TRANSACTION ISOLATION LEVEL ... <<< |
Lecture cohérente non-bloquante | Verrous de lecture SELECT ... FOR UPDATE et SELECT ... LOCK IN SHARE MODE >>> |
16.11 Modèle de transactions et verrouillage InnoDB 16 Tables InnoDB Manuel de Référence MySQL 4.1 : Version Française . InnoDB et AUTOCOMMIT . InnoDB et SET ... TRANSACTION ISOLATION LEVEL ... ->Lecture cohérente non-bloquante . Verrous de lecture SELECT ... FOR UPDATE et SELECT ... LOCK IN SHARE MODE . Verrou de clé suivante : éviter le problème des lignes fantômes . Un exemple de lecture cohérente avec InnoDB . Les verrous posés par différentes requêtes SQL avec InnoDB . Quand est-ce que MySQL valide ou annule implicitement une transaction? . Détection des blocages et annulation . Comment gérer les blocages de verrous? |
16.11.3 Lecture cohérente non-bloquanteUne lecture cohérente signifie que InnoDB utilise son système de multi-versionage pour présenter à une requête, une photo de la base à un moment donné. La requête va alors voir les différentses modifications apportées par les transactions qui ont eu lieu avant cette date, et masquera les transactions ont eu lieu depuis, ou n'ont pas été archivées. L'exception à cette règle est que la requête verra les modification apportées la requête qui a émis cette commande. Si vous utilisez le niveau d'isolation REPEATABLE READ , alors les lectures cohérentes dans une même transaction liront le même bilan. Vous pouvez obtenir un bilan plus récent pour vos requêtes en archivant la requête courante, et en démarrant une autre. Les lectures cohérentes sont le mode par défaut de traitement des commandes SELECT par InnoDB avec les niveaux d'isolation READ COMMITTED et REPEATABLE READ . Une lecture cohérente ne pose aucun verrou sur les tables auxquelles elle accède, et par conséquent, les autres utilisateurs peuvent librement modifier ces tables en même temps qu'une lecture cohérente est exécutée. |