PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 14.15 » Internes

Partie VII. Internes

Cette partie contient des informations diverses utiles aux développeurs.

Table des matières

51. Présentation des mécanismes internes de PostgreSQL
51.1. Chemin d'une requête
51.2. Établissement des connexions
51.3. Étape d'analyse
51.4. Système de règles de PostgreSQL
51.5. Planificateur/Optimiseur
51.6. Exécuteur
52. Catalogues système
52.1. Aperçu
52.2. pg_aggregate
52.3. pg_am
52.4. pg_amop
52.5. pg_amproc
52.6. pg_attrdef
52.7. pg_attribute
52.8. pg_authid
52.9. pg_auth_members
52.10. pg_cast
52.11. pg_class
52.12. pg_collation
52.13. pg_constraint
52.14. pg_conversion
52.15. pg_database
52.16. pg_db_role_setting
52.17. pg_default_acl
52.18. pg_depend
52.19. pg_description
52.20. pg_enum
52.21. pg_event_trigger
52.22. pg_extension
52.23. pg_foreign_data_wrapper
52.24. pg_foreign_server
52.25. pg_foreign_table
52.26. pg_index
52.27. pg_inherits
52.28. pg_init_privs
52.29. pg_language
52.30. pg_largeobject
52.31. pg_largeobject_metadata
52.32. pg_namespace
52.33. pg_opclass
52.34. pg_operator
52.35. pg_opfamily
52.36. pg_partitioned_table
52.37. pg_policy
52.38. pg_proc
52.39. pg_publication
52.40. pg_publication_rel
52.41. pg_range
52.42. pg_replication_origin
52.43. pg_rewrite
52.44. pg_seclabel
52.45. pg_sequence
52.46. pg_shdepend
52.47. pg_shdescription
52.48. pg_shseclabel
52.49. pg_statistic
52.50. pg_statistic_ext
52.51. pg_statistic_ext_data
52.52. pg_subscription
52.53. pg_subscription_rel
52.54. pg_tablespace
52.55. pg_transform
52.56. pg_trigger
52.57. pg_ts_config
52.58. pg_ts_config_map
52.59. pg_ts_dict
52.60. pg_ts_parser
52.61. pg_ts_template
52.62. pg_type
52.63. pg_user_mapping
52.64. Vues système
52.65. pg_available_extensions
52.66. pg_available_extension_versions
52.67. pg_backend_memory_contexts
52.68. pg_config
52.69. pg_cursors
52.70. pg_file_settings
52.71. pg_group
52.72. pg_hba_file_rules
52.73. pg_indexes
52.74. pg_locks
52.75. pg_matviews
52.76. pg_policies
52.77. pg_prepared_statements
52.78. pg_prepared_xacts
52.79. pg_publication_tables
52.80. pg_replication_origin_status
52.81. pg_replication_slots
52.82. pg_roles
52.83. pg_rules
52.84. pg_seclabels
52.85. pg_sequences
52.86. pg_settings
52.87. pg_shadow
52.88. pg_shmem_allocations
52.89. pg_stats
52.90. pg_stats_ext
52.91. pg_stats_ext_exprs
52.92. pg_tables
52.93. pg_timezone_abbrevs
52.94. pg_timezone_names
52.95. pg_user
52.96. pg_user_mappings
52.97. pg_views
53. Protocole client/serveur
53.1. Aperçu
53.2. Flux de messages
53.3. Authentification SASL
53.4. Protocole de réplication en continu
53.5. Protocole de réplication logique en flux
53.6. Types de données des messages
53.7. Formats de message
53.8. Champs des messages d'erreur et d'avertissement
53.9. Formats des messages de la réplication logique
53.10. Résumé des modifications depuis le protocole 2.0
54. Conventions de codage pour PostgreSQL
54.1. Formatage
54.2. Reporter les erreurs dans le serveur
54.3. Guide de style des messages d'erreurs
54.4. Conventions diverses de codage
55. Support natif des langues
55.1. Pour le traducteur
55.2. Pour le développeur
56. Écrire un gestionnaire de langage procédural
57. Écrire un wrapper de données distantes
57.1. Fonctions d'un wrapper de données distantes
57.2. Routines callback des wrappers de données distantes
57.3. Fonctions d'aide pour les wrapper de données distantes
57.4. Planification de la requête avec un wrapper de données distantes
57.5. Le verrouillage de ligne dans les wrappers de données distantes
58. Écrire une méthode d'échantillonnage de table
58.1. Fonctions de support d'une méthode d'échantillonnage
59. Écrire un module de parcours personnalisé
59.1. Créer des parcours de chemin personnalisés
59.2. Créer des parcours de plans personnalisés
59.3. Exécution de parcours personnalisés
60. Optimiseur génétique de requêtes (Genetic Query Optimizer)
60.1. Gérer les requêtes, un problème d'optimisation complexe
60.2. Algorithmes génétiques
60.3. Optimisation génétique des requêtes (GEQO) dans PostgreSQL
60.4. Lectures supplémentaires
61. Définition de l'interface des méthodes d'accès aux tables
62. Définition de l'interface des méthodes d'accès aux index
62.1. Structure basique de l'API pour les index
62.2. Fonctions des méthode d'accès aux index
62.3. Parcours d'index
62.4. Considérations sur le verrouillage d'index
62.5. Vérification de l'unicité par les index
62.6. Fonctions d'estimation des coûts d'index
63. Enregistrements génériques des journaux de transactions
64. Index B-Tree
64.1. Introduction
64.2. Comportement des classes d'opérateur B-Tree
64.3. Fonctions de support B-Tree
64.4. Implémentation
65. Index GiST
65.1. Introduction
65.2. Classes d'opérateur internes
65.3. Extensibilité
65.4. Implémentation
65.5. Exemples
66. Index SP-GiST
66.1. Introduction
66.2. Classes d'opérateur internes
66.3. Extensibilité
66.4. Implémentation
66.5. Exemples
67. Index GIN
67.1. Introduction
67.2. Classes d'opérateur natives
67.3. Extensibilité
67.4. Implantation
67.5. Conseils et astuces sur GIN
67.6. Limitations
67.7. Exemples
68. Index BRIN
68.1. Introduction
68.2. Classes d'opérateur intégrées
68.3. Extensibilité
69. Index Hash
69.1. Aperçu
69.2. Implémentation
70. Stockage physique de la base de données
70.1. Emplacement des fichiers de la base de données
70.2. TOAST
70.3. Carte des espaces libres
70.4. Carte de visibilité
70.5. Fichier d'initialisation
70.6. Emplacement des pages de la base de données
70.7. Heap-Only Tuples (HOT)
71. Déclaration du catalogue système et contenu initial
71.1. Règles de déclaration de catalogue système
71.2. Données initiales du catalogue système
71.3. Format des fichiers BKI
71.4. Commandes BKI
71.5. Structure du fichier BKI de « bootstrap »
71.6. Exemple BKI
72. Comment le planificateur utilise les statistiques
72.1. Exemples d'estimation des lignes
72.2. Exemples de statistiques multivariées
72.3. Statistiques de l'optimiseur et sécurité
73. Format de manifeste de sauvegarde
73.1. Objet de niveau supérieur du manifeste de sauvegarde
73.2. Objet fichier du manifeste de sauvegarde
73.3. Objet intervalle des journaux de transaction du manifeste de sauvegarde