Optimisation de MySQL <<< |
Comment MySQL verrouille les tables | Problème de verrouillage de tables >>> |
5.3 Verrouillage de tables 5 Optimisation de MySQL Manuel de Référence MySQL 4.1 : Version Française ->Comment MySQL verrouille les tables . Problème de verrouillage de tables |
5.3.1 Comment MySQL verrouille les tables
Vous pouvez trouver une discussion sur les différentes méthodes de verrouillage dans l'annexe. Méthodes de verrouillage . Toutes les méthodes de verrouillage de MySQL sont exemptes de blocage, sauf pour les tables InnoDB et BDB . Ceci fonctionne en demandant tous les verrous d'un seul coup, au début de la requête, et en verrouillant les tables toujours dans le même ordre. Les tables InnoDB obtiennent automatiquement leur verrou de ligne et les tables BDB leur verrou de page, durant le traitement de la requête SQL, et non pas au démarrage de la transaction.La méthode de verrouillage des tables de MySQL en écriture ( WRITE ) fonctionne comme ceci :
Pour contourner ce problème dans les cas où vous voulez faire de nombreuses INSERT et SELECT sur la même table, vous pouvez insérer les lignes dans une table temporaire, et ne modifier la table réelle que de temps en temps, à partir de la table temporaire. Ceci peut être fait comme ceci :
Utiliser l'option SQL_BUFFER_RESULT peut aussi réduire la durée des verrous de tables. Syntaxe des SELECT . Vous pouvez aussi changer le code de verrouillage dans le fichier mysys/thr_lock.c , pour utiliser une queue simple. Dans ce cas, les verrous en écriture et en lecture auront la même priorité, ce qui peut aider certaines applications. |
<< | Comment MySQL verrouille les tables | >> |
Optimisation de MySQL | Verrouillage de tables | Problème de verrouillage de tables |