Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Chapitre 12. Contrôle d'accès simultané | Avance rapide | Suivant |
Bien que PostgreSQL fournisse des accès non bloquant en lecture/écriture aux données de la table, un accès non bloquant en lecture/écriture n'est pas fourni pour chaque méthode d'accès aux index implémentée dans PostgreSQL. Les différents types d'index sont gérés ainsi :
Les verrous partagés/exclusifs de court terme au niveau page sont utilisés pour les accès en lecture/écriture. Les verrous sont immédiatement relâchés après le parcours ou l'insertion de chaque ligne d'index. Les index B-tree fournissent le plus haut niveau de concurrence sans conditions de blocage.
Les verrous partagés/exclusifs de niveau index sont utilisés pour les accès en lecture/écriture. Les verrous sont relâchés à la fin de la commande.
Les verrous partagés/exclusifs au niveau hash-bucket sont utilisés pour des accès en lecture/écriture. Les verrous sont relâchés après la fin des traitements sur le bucket. Les verrous au niveau bucket fournissent un meilleur accès concurrent que les verrous au niveau index mais sont sensibles aux blocages car les verrous sont détenus plus longtemps que pour une opération sur un index.
En bref, les index B-tree offrent la meilleure performance pour les applications concurrentes ; comme ils ont aussi plus de fonctionnalités que les index hachés, ils constituent le type d'index recommandé pour les applications concurrentes nécessitant des index sur des données scalaires. Pour les données non scalaires, les index B-trees ne peuvent évidemment pas être utilisés ; dans cette situation, les développeurs d'applications doivent être conscients des faibles performances de concurrence des index GiST et R-tree.
Précédent | Sommaire | Suivant |
Vérification de cohérence des données au niveau de l'application | Niveau supérieur | Conseils sur les performances |