PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

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_event_trigger
52.13. pg_collation
52.14. pg_constraint
52.15. pg_conversion
52.16. pg_database
52.17. pg_db_role_setting
52.18. pg_default_acl
52.19. pg_depend
52.20. pg_description
52.21. pg_enum
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_pltemplate
52.38. pg_policy
52.39. pg_proc
52.40. pg_publication
52.41. pg_publication_rel
52.42. pg_range
52.43. pg_replication_origin
52.44. pg_rewrite
52.45. pg_seclabel
52.46. pg_sequence
52.47. pg_shdepend
52.48. pg_shdescription
52.49. pg_shseclabel
52.50. pg_statistic
52.51. pg_statistic_ext
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_config
52.68. pg_cursors
52.69. pg_file_settings
52.70. pg_group
52.71. pg_hba_file_rules
52.72. pg_indexes
52.73. pg_locks
52.74. pg_matviews
52.75. pg_policies
52.76. pg_prepared_statements
52.77. pg_prepared_xacts
52.78. pg_publication_tables
52.79. pg_replication_origin_status
52.80. pg_replication_slots
52.81. pg_roles
52.82. pg_rules
52.83. pg_seclabels
52.84. pg_sequences
52.85. pg_settings
52.86. pg_shadow
52.87. pg_stats
52.88. pg_tables
52.89. pg_timezone_abbrevs
52.90. pg_timezone_names
52.91. pg_user
52.92. pg_user_mappings
52.93. pg_views
53. Protocole client/serveur
53.1. Aperçu
53.2. Flux de messages
53.3. Protocole de réplication logique en flux
53.4. Types de données des messages
53.5. Authentification SASL
53.6. Protocole de réplication en continu
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 index
61.1. Structure basique de l'API pour les index
61.2. Fonctions des méthode d'accès aux index
61.3. Parcours d'index
61.4. Considérations sur le verrouillage d'index
61.5. Vérification de l'unicité par les index
61.6. Fonctions d'estimation des coûts d'index
62. Enregistrements génériques des journaux de transactions
63. Index B-Tree
63.1. Introduction
63.2. Comportement des classes d'opérateur B-Tree
63.3. Fonctions de support B-Tree
63.4. Implémentation
64. Index GiST
64.1. Introduction
64.2. Classes d'opérateur internes
64.3. Extensibilité
64.4. Implémentation
64.5. Exemples
65. Index SP-GiST
65.1. Introduction
65.2. Classes d'opérateur internes
65.3. Extensibilité
65.4. Implémentation
65.5. Exemples
66. Index GIN
66.1. Introduction
66.2. Classes d'opérateur internes
66.3. Extensibilité
66.4. Implantation
66.5. Conseils et astuces GIN
66.6. Limitations
66.7. Exemples
67. Index BRIN
67.1. Introduction
67.2. Opérateurs de classe intégrés
67.3. Extensibilité
68. Stockage physique de la base de données
68.1. Emplacement des fichiers de la base de données
68.2. TOAST
68.3. Carte des espaces libres
68.4. Carte de visibilité
68.5. Fichier d'initialisation
68.6. Emplacement des pages de la base de données
69. Déclaration du catalogue système et contenu initial
69.1. Règles de déclaration de catalogue système
69.2. Données initiales du catalogue système
69.3. Format des fichiers BKI
69.4. Commandes BKI
69.5. Structure du fichier BKI de « bootstrap »
69.6. Exemple BKI
70. Comment le planificateur utilise les statistiques
70.1. Exemples d'estimation des lignes
70.2. Exemples de statistiques multivariées
70.3. Statistiques de l'optimiseur et sécurité