PolarDB for PostgreSQL préconfigure certains paramètres de l'édition communautaire afin d'offrir de meilleures performances et une stabilité accrue dans un environnement cloud. Certaines valeurs par défaut diffèrent de celles du PostgreSQL standard. Cette référence couvre les paramètres qui influencent les performances et le comportement, classés par catégorie.
Certains paramètres ne sont pas modifiables depuis la console. Connectez-vous au cluster et utilisez la ligne de commande pour les consulter et les modifier.
Paramètres importants
Les trois paramètres ci-dessous possèdent des valeurs par défaut spécifiques à PolarDB, différentes de l'édition communautaire. Modifiez-les dans la console selon vos besoins.
synchronous_commit
Ce paramètre détermine le moment où une transaction signale son succès au client, par rapport aux garanties de durabilité du WAL. Valeur par défaut : off.
Détails de configuration :
off(par défaut) : Les transactions signalent leur succès sans attendre que le WAL soit écrit sur le disque. La fenêtre maximale de perte de données correspond à 3 ×wal_writer_delay(par défaut : 10 ms). Privilégiez cette option lorsque le débit prime sur la durabilité stricte.on: Les transactions attendent l'écriture du WAL sur le disque avant de signaler leur succès. Ce réglage convient aux applications exigeant une durabilité stricte pour chaque transaction.remote_write: Les transactions patientent jusqu'à l'écriture du WAL sur le système de fichiers du nœud standby, sans nécessairement attendre sa synchronisation sur le disque.local: Les transactions attendent uniquement l'écriture du WAL sur le disque local, sans exigence concernant le nœud standby.remote_apply: Les transactions patientent jusqu'à l'application du WAL au journal des transactions du nœud standby. Cela offre la garantie de cohérence la plus forte, mais augmente la latence de validation.
Pour vérifier le paramétrage actuel, exécutez SHOW synchronous_commit;.
wal_level
Définit la quantité d'informations écrites dans le journal WAL (Write-Ahead Logging). Valeur par défaut : replica.
La modification de ce paramètre entraîne le redémarrage de la base de données. Planifiez cette opération en conséquence.
| Valeur | Contenu du WAL | Cas d'usage |
|---|---|---|
replica (par défaut) |
Prend en charge les nœuds standby en lecture seule | Déploiement standard ; réduit le volume du WAL et améliore les performances d'écriture |
logical |
Ajoute les données nécessaires à la réplication logique | Votre charge de travail utilise la réplication logique |
Pour vérifier le paramétrage actuel, exécutez SHOW wal_level;.
log_statement
Spécifie les instructions SQL à écrire dans le journal d'audit. Valeur par défaut : ddl.
| Valeur | Éléments journalisés |
|---|---|
none |
Aucun |
ddl (par défaut) |
Instructions DDL : CREATE, ALTER, DROP |
mod |
Instructions DDL et DML : INSERT, UPDATE, DELETE |
all |
Toutes les instructions SQL |
Réduire le nombre d'instructions journalisées améliore les performances de la base de données. La fonctionnalité SQL Explorer and Audit ajuste automatiquement ce paramètre : son activation définit log_statement = all ; sa désactivation rétablit log_statement = ddl.
Pour vérifier le paramétrage actuel, exécutez SHOW log_statement;.
Référence des paramètres
Les sections suivantes listent les paramètres configurables du cluster, classés par catégorie.
Connexion et authentification
| Paramètre | Description | Valeur par défaut | Plage | Unité |
|---|---|---|---|---|
authentication_timeout |
Durée maximale accordée à un client pour terminer son authentification. Le serveur ferme la connexion si cette limite est dépassée, empêchant ainsi les clients inactifs de monopoliser des ressources de connexion. | 60 | 1–600 | secondes |
ssl |
Active les connexions chiffrées via Secure Sockets Layer (SSL). | OFF | ON/OFF | — |
Autovacuum
Le processus autovacuum récupère l'espace occupé par les tuples morts (lignes résiduelles suite à des suppressions ou mises à jour) et actualise les statistiques des tables. Ces deux fonctions sont essentielles pour maintenir les performances des requêtes dans le temps.
Même lorsque autovacuum est désactivé, le système déclenche tout de même des processus vacuum pour éviter le bouclage des ID de transaction.
| Paramètre | Description | Valeur par défaut | Plage | Unité |
|---|---|---|---|---|
autovacuum |
Active le processus d'arrière-plan autovacuum. Nécessite track_counts = on. |
ON | ON/OFF | — |
autovacuum_max_workers |
Nombre maximal de processus worker autovacuum (hors lanceur) pouvant s'exécuter simultanément. | 5 | 1–262 143 | processus |
autovacuum_naptime |
Pause minimale entre deux cycles autovacuum sur une base de données donnée. Chaque cycle émet des commandes VACUUM et ANALYZE pour les tables qui le nécessitent. |
30 | 1–2 147 483 | secondes |
autovacuum_vacuum_threshold |
Nombre minimal de tuples modifiés (insérés, mis à jour ou supprimés) requis pour déclencher VACUUM. S'applique conjointement avec autovacuum_vacuum_scale_factor. |
50 | 0–2 147 483 647 | tuples |
autovacuum_vacuum_scale_factor |
Fraction de la taille de la table ajoutée à autovacuum_vacuum_threshold pour déterminer le seuil de déclenchement du VACUUM : autovacuum_vacuum_threshold + (autovacuum_vacuum_scale_factor × table row count). |
0,02 | 0–100 | pourcentage |
autovacuum_analyze_threshold |
Nombre minimal de tuples modifiés requis pour déclencher ANALYZE. S'applique conjointement avec autovacuum_analyze_scale_factor. |
50 | 0–2 147 483 647 | tuples |
autovacuum_analyze_scale_factor |
Fraction de la taille de la table ajoutée à autovacuum_analyze_threshold : autovacuum_analyze_threshold + (autovacuum_analyze_scale_factor × table row count). |
0,05 | 0–2 147 483 647 | pourcentage |
autovacuum_freeze_max_age |
Âge maximal des ID de transaction qu'une table peut atteindre avant qu'un VACUUM forcé ne soit exécuté pour prévenir le bouclage des ID de transaction. Le système déclenche ce vacuum même si autovacuum est désactivé. | 500 000 000 | 100 000–2 000 000 000 | ID de transaction |
autovacuum_multixact_freeze_max_age |
Âge maximal des ID multixact avant qu'un VACUUM forcé ne soit exécuté pour prévenir le bouclage des ID multixact. Le système déclenche ce vacuum même si autovacuum est désactivé. | 700 000 000 | 10 000–2 000 000 000 | ID de transaction |
autovacuum_vacuum_cost_delay |
Délai de coût appliqué aux opérations autovacuum. Définissez cette valeur à -1 pour utiliser la valeur de vacuum_cost_delay. |
0 | -1–100 | millisecondes |
autovacuum_vacuum_cost_limit |
Limite de coût totale pour les opérations autovacuum, répartie proportionnellement entre tous les processus worker en cours d'exécution. Définissez cette valeur à -1 pour utiliser la valeur de vacuum_cost_limit. |
10 000 | -1–10 000 | valeur de coût |
Checkpoints et écriture en arrière-plan
| Paramètre | Description | Valeur par défaut | Plage | Unité |
|---|---|---|---|---|
checkpoint_timeout |
Intervalle maximal entre les checkpoints WAL automatiques. | 30 | 30–86 400 | secondes |
bgwriter_delay |
Pause entre les cycles du processus d'écriture en arrière-plan qui synchronisent les pages modifiées sur le disque. | 600 000 | 10–10 000 | millisecondes |
backend_flush_after |
Nombre de pages modifiées qu'un processus backend peut écrire avant que le système d'exploitation ne synchronise le cache de fichiers sur le disque. Définissez cette valeur à 0 pour désactiver cette fonctionnalité. |
0 | 0–256 | blocs |
full_page_writes |
Écrit le contenu intégral d'une page de données dans le WAL lors de sa première modification après un checkpoint. Cela prévient la corruption de pages partielles en cas de coupure de courant. | OFF | ON/OFF | — |
wal_buffers |
Mémoire partagée utilisée pour mettre en tampon les données WAL avant leur écriture sur le disque. | 16 Mo | -1–262 143 (jusqu'à 2 097 144 Ko) | blocs WAL (8 Ko chacun) |
wal_level |
Consultez la section Paramètres importants. La modification de ce paramètre entraîne le redémarrage de la base de données. | replica | replica/logical | — |
wal_writer_delay |
Pause maximale entre les cycles de synchronisation du processus walwriter. | 600 000 | 1–10 000 | millisecondes |
Planification et exécution des requêtes
| Paramètre | Description | Valeur par défaut | Plage |
|---|---|---|---|
constraint_exclusion |
Détermine si le planificateur utilise les contraintes CHECK pour élaguer les résultats de requête. L'option partition applique l'optimisation uniquement aux tables partitionnées et aux sous-requêtes UNION ALL. |
partition | on/off/partition |
cpu_index_tuple_cost |
Estimation du coût par le planificateur pour le traitement de chaque entrée d'index lors d'un balayage d'index. | 0,005 | 0–1,79769e+308 |
cpu_operator_cost |
Estimation du coût par le planificateur pour le traitement de chaque opérateur ou fonction dans une requête. | 0,0025 | 0–1,79769e+308 |
cpu_tuple_cost |
Estimation du coût par le planificateur pour le traitement de chaque ligne dans une requête. | 0,01 | 0–1,79769e+308 |
enable_partition_pruning |
Active l'élagage des partitions lors de la planification et de l'exécution afin d'éviter le balayage des partitions non pertinentes. | ON | ON/OFF |
seq_page_cost |
Estimation du coût par le planificateur pour la récupération d'une page lors d'un balayage séquentiel. | 1 | 0–1,79769e+308 |
jit |
Active la compilation Just-In-Time (JIT) pour les requêtes éligibles afin d'accélérer l'exécution. | OFF | ON/OFF |
Paramètres de délai d'attente
| Paramètre | Description | Valeur par défaut | Plage | Unité |
|---|---|---|---|---|
deadlock_timeout |
Durée pendant laquelle une transaction attend un verrou avant que le système ne vérifie la présence d'un interblocage. | 1 000 | 0–2 147 483 647 | millisecondes |
idle_in_transaction_session_timeout |
Durée maximale pendant laquelle une session peut rester inactive au sein d'une transaction. La session est interrompue si cette limite est dépassée. Définissez cette valeur à 0 pour désactiver ce contrôle. |
3 600 000 | 0–2 147 483 647 | millisecondes |
lock_timeout |
Durée maximale pendant laquelle une opération attend l'acquisition d'un verrou. L'opération échoue avec une erreur si cette limite est dépassée. Définissez cette valeur à 0 pour une attente illimitée. |
0 | 0–2 147 483 647 | millisecondes |
statement_timeout |
Temps d'exécution maximal autorisé pour une instruction SQL unique. L'instruction est annulée si cette limite est dépassée. Définissez cette valeur à 0 pour aucune limite. |
0 | 0–262 143 | millisecondes |
Journalisation et audit
| Paramètre | Description | Valeur par défaut | Plage | Unité |
|---|---|---|---|---|
logging_collector |
Active le processus de collecte des journaux, qui capture et écrit les sorties de journalisation pendant le fonctionnement du cluster. | ON | ON/OFF | — |
log_connections |
Journalise chaque connexion client réussie. | OFF | ON/OFF | — |
log_disconnections |
Journalise chaque déconnexion client. | OFF | ON/OFF | — |
log_error_verbosity |
Contrôle le niveau de détail inclus dans les messages d'erreur du journal. terse : sévérité, message et position uniquement. default : ajoute les indices et détails. verbose : tous les champs disponibles. |
default | terse/default/verbose | — |
log_min_duration_statement |
Journalise toute instruction SQL dont la durée d'exécution dépasse le seuil spécifié. Définissez cette valeur à 0 pour journaliser toutes les instructions. Réglez-la sur -1 pour désactiver la journalisation des requêtes lentes. |
5 000 | 0–2 147 483 647 | millisecondes |
log_statement |
Consultez la section Paramètres importants. | ddl | none/ddl/mod/all | — |
Réplication et haute disponibilité
| Paramètre | Description | Valeur par défaut | Plage |
|---|---|---|---|
hot_standby |
Autorise les nœuds en lecture seule à accepter des requêtes de lecture pendant la récupération. | ON | ON/OFF |
hot_standby_feedback |
Envoie des retours des nœuds en lecture seule vers le nœud primaire concernant les requêtes actives. Lorsque cette option est activée, le primaire retarde le nettoyage des versions de lignes encore nécessaires aux requêtes des nœuds en lecture seule, réduisant ainsi les conflits de requêtes. | ON | ON/OFF |
max_replication_slots |
Nombre maximal de slots de réplication pris en charge par le cluster. | 64 | 0–262 143 |
Gestion des ressources
| Paramètre | Description | Valeur par défaut | Plage | Unité |
|---|---|---|---|---|
dynamic_shared_memory_type |
Méthode d'implémentation de la mémoire partagée dynamique. | posix | posix/sysv/mmap | — |
gin_pending_list_limit |
Taille maximale de la liste en attente pour un index GIN (Generalized Inverted Index) en mode de mise à jour rapide. | 4 096 | 64–2 097 151 | Ko |
huge_pages |
Demande de grandes pages mémoire au système d'exploitation lorsqu'elles sont disponibles. | ON | ON/OFF | — |
max_files_per_process |
Nombre maximal de descripteurs de fichiers que chaque processus d'arrière-plan peut ouvrir simultanément. | 10 000 | 64–2 147 483 647 | — |
max_locks_per_transaction |
Nombre maximal de verrous qu'une seule transaction peut détenir. | 64 | 10–2 147 483 647 | — |
max_prepared_transactions |
Nombre maximal de transactions pouvant se trouver simultanément à l'état préparé (protocole de validation en deux phases). | 800 | 0–262 143 | — |
max_worker_processes |
Nombre maximal de processus worker d'arrière-plan que le cluster peut démarrer, y compris les workers de requêtes parallèles. | 256 | 0–262 143 | — |
temp_file_limit |
Taille totale maximale des fichiers temporaires (utilisés pour le tri, le hachage et opérations similaires) qu'un seul processus backend peut créer. Définissez cette valeur à -1 pour aucune limite. |
104 857 600 (100 Go) | -1–2 147 483 647 | Ko |
Formatage et comportement
| Paramètre | Description | Valeur par défaut | Plage |
|---|---|---|---|
datestyle |
Format d'affichage des valeurs de date et d'heure. Combinez un format de sortie (ISO, Postgres, SQL ou German) avec un ordre de date (DMY, MDY ou YMD). |
ISO,YMD |
Voir la description |
default_with_oids |
Obsolète. La version actuelle ne prend plus en charge les OID ; ce paramètre peut donc uniquement être défini à OFF. |
OFF | OFF uniquement |
extra_float_digits |
Nombre de chiffres significatifs supplémentaires affichés pour les valeurs à virgule flottante au-delà de la précision standard. Des valeurs plus élevées produisent une sortie plus précise. | 0 | -15–3 |
fsync |
Force la synchronisation des modifications de données du cache du système d'exploitation vers le disque après des opérations telles que COMMIT. La désactivation de cette option améliore les performances d'écriture, mais risque de corrompre les données en cas de panne système. |
ON | ON/OFF |
timezone |
Fuseau horaire utilisé pour afficher et interpréter les horodatages dans la session. Pour les valeurs disponibles, consultez la plage de modification des paramètres dans la console. | UTC |
Noms de fuseaux horaires standard, par exemple Asia/Shanghai, UTC |