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

Partie VII. Internes

Cette partie contient diverses informations utiles aux développeurs.

Table des matières

52. Présentation des mécanismes internes de PostgreSQL
52.1. Chemin d'une requête
52.2. Établissement des connexions
52.3. Étape d'analyse
52.4. Système de règles de PostgreSQL
52.5. Planificateur/Optimiseur
52.6. Exécuteur
53. Catalogues système
53.1. Aperçu
53.2. pg_aggregate
53.3. pg_am
53.4. pg_amop
53.5. pg_amproc
53.6. pg_attrdef
53.7. pg_attribute
53.8. pg_authid
53.9. pg_auth_members
53.10. pg_cast
53.11. pg_class
53.12. pg_collation
53.13. pg_constraint
53.14. pg_conversion
53.15. pg_database
53.16. pg_db_role_setting
53.17. pg_default_acl
53.18. pg_depend
53.19. pg_description
53.20. pg_enum
53.21. pg_event_trigger
53.22. pg_extension
53.23. pg_foreign_data_wrapper
53.24. pg_foreign_server
53.25. pg_foreign_table
53.26. pg_index
53.27. pg_inherits
53.28. pg_init_privs
53.29. pg_language
53.30. pg_largeobject
53.31. pg_largeobject_metadata
53.32. pg_namespace
53.33. pg_opclass
53.34. pg_operator
53.35. pg_opfamily
53.36. pg_parameter_acl
53.37. pg_partitioned_table
53.38. pg_policy
53.39. pg_proc
53.40. pg_publication
53.41. pg_publication_namespace
53.42. pg_publication_rel
53.43. pg_range
53.44. pg_replication_origin
53.45. pg_rewrite
53.46. pg_seclabel
53.47. pg_sequence
53.48. pg_shdepend
53.49. pg_shdescription
53.50. pg_shseclabel
53.51. pg_statistic
53.52. pg_statistic_ext
53.53. pg_statistic_ext_data
53.54. pg_subscription
53.55. pg_subscription_rel
53.56. pg_tablespace
53.57. pg_transform
53.58. pg_trigger
53.59. pg_ts_config
53.60. pg_ts_config_map
53.61. pg_ts_dict
53.62. pg_ts_parser
53.63. pg_ts_template
53.64. pg_type
53.65. pg_user_mapping
54. Vues système
54.1. Aperçu
54.2. pg_available_extensions
54.3. pg_available_extension_versions
54.4. pg_backend_memory_contexts
54.5. pg_config
54.6. pg_cursors
54.7. pg_file_settings
54.8. pg_group
54.9. pg_hba_file_rules
54.10. pg_ident_file_mappings
54.11. pg_indexes
54.12. pg_locks
54.13. pg_matviews
54.14. pg_policies
54.15. pg_prepared_statements
54.16. pg_prepared_xacts
54.17. pg_publication_tables
54.18. pg_replication_origin_status
54.19. pg_replication_slots
54.20. pg_roles
54.21. pg_rules
54.22. pg_seclabels
54.23. pg_sequences
54.24. pg_settings
54.25. pg_shadow
54.26. pg_shmem_allocations
54.27. pg_stats
54.28. pg_stats_ext
54.29. pg_stats_ext_exprs
54.30. pg_tables
54.31. pg_timezone_abbrevs
54.32. pg_timezone_names
54.33. pg_user
54.34. pg_user_mappings
54.35. pg_views
55. Protocole Frontend/Backend
55.1. Aperçu
55.2. Flot de messages
55.3. Authentification SASL
55.4. Protocole de réplication en flux
55.5. Logical Streaming Replication Protocol
55.6. Types de données des messages
55.7. Formats de message
55.8. Champs des messages d'erreur et de notification
55.9. Formats des messages de la réplication logique
55.10. Résumé des changements depuis le protocole 2.0
56. Conventions de codage pour PostgreSQL
56.1. Formatage
56.2. Reporter les erreurs dans le serveur
56.3. Guide de style des messages d'erreurs
56.4. Conventions diverses de codage
57. Support natif des langues
57.1. Pour le traducteur
57.2. Pour le développeur
58. Écrire un gestionnaire de langage procédural
59. Écrire un wrapper de données distantes
59.1. Fonctions d'un wrapper de données distantes
59.2. Routines callback des wrappers de données distantes
59.3. Fonctions d'aide pour les wrapper de données distantes
59.4. Planification de la requête avec un wrapper de données distantes
59.5. Le verrouillage de ligne dans les wrappers de données distantes
60. Écrire une méthode d'échantillonnage de table
60.1. Fonctions de support d'une méthode d'échantillonnage
61. Écrire un module de parcours personnalisé
61.1. Créer des parcours de chemin personnalisés
61.2. Créer des parcours de plans personnalisés
61.3. Exécution de parcours personnalisés
62. Optimiseur génétique de requêtes (Genetic Query Optimizer)
62.1. Gérer les requêtes, un problème d'optimisation complexe
62.2. Algorithmes génétiques
62.3. Optimisation génétique des requêtes (GEQO) dans PostgreSQL
62.4. Lectures supplémentaires
63. Définition de l'interface des méthodes d'accès aux tables
64. Définition de l'interface des méthodes d'accès aux index
64.1. Structure basique de l'API pour les index
64.2. Fonctions des méthode d'accès aux index
64.3. Parcours d'index
64.4. Considérations sur le verrouillage d'index
64.5. Vérification de l'unicité par les index
64.6. Fonctions d'estimation des coûts d'index
65. Enregistrements génériques des journaux de transactions
66. Gestionnaires de ressources WAL personnalisées
67. Index B-Tree
67.1. Introduction
67.2. Comportement des classes d'opérateur B-Tree
67.3. Fonctions de support B-Tree
67.4. Implémentation
68. Index GiST
68.1. Introduction
68.2. Classes d'opérateur internes
68.3. Extensibilité
68.4. Implémentation
68.5. Exemples
69. Index SP-GiST
69.1. Introduction
69.2. Classes d'opérateur internes
69.3. Extensibilité
69.4. Implémentation
69.5. Exemples
70. Index GIN
70.1. Introduction
70.2. Classes d'opérateur natives
70.3. Extensibilité
70.4. Implantation
70.5. Conseils et astuces sur GIN
70.6. Limitations
70.7. Exemples
71. Index BRIN
71.1. Introduction
71.2. Classes d'opérateur intégrées
71.3. Extensibilité
72. Index Hash
72.1. Aperçu
72.2. Implémentation
73. Stockage physique de la base de données
73.1. Emplacement des fichiers de la base de données
73.2. TOAST
73.3. Carte des espaces libres
73.4. Carte de visibilité
73.5. Fichier d'initialisation
73.6. Emplacement des pages de la base de données
73.7. Heap-Only Tuples (HOT)
74. Déclaration du catalogue système et contenu initial
74.1. Règles de déclaration de catalogue système
74.2. Données initiales du catalogue système
74.3. Format des fichiers BKI
74.4. Commandes BKI
74.5. Structure du fichier BKI de « bootstrap »
74.6. Exemple BKI
75. Comment le planificateur utilise les statistiques
75.1. Exemples d'estimation des lignes
75.2. Exemples de statistiques multivariées
75.3. Statistiques de l'optimiseur et sécurité
76. Format de manifeste de sauvegarde
76.1. Objet de niveau supérieur du manifeste de sauvegarde
76.2. Objet fichier du manifeste de sauvegarde
76.3. Objet intervalle des journaux de transaction du manifeste de sauvegarde