Vous souhaitez apprendre quelques astuces pour améliorer votre performance Postgres en ligne? Voici quelques paramètres de configuration de base de données à prendre en compte pour améliorer les performances globales de la base de données.

Pas

  1. 1 Définissez certains paramètres pour des performances optimales:
    • shared_buffers: définit les tampons de mémoire partagée par cluster PG. Ajustez-le suffisamment grand pour contenir les tables / index les plus couramment utilisés ET assez petit pour éviter une activité de page d'échange.
    • work_mem: contrôle la quantité de mémoire utilisée pour les opérations de tri et de hachage. Si ce n'est pas assez grand, le tri se répercute sur le disque. Pour vous aider à ajuster correctement, regardez l'emplacement temporaire de Postgres sur le disque: $ PGDATA / base / DBOID / pgsql_tmp. Mémoire allouée par session. Ajusté par session.
    • work_maintenance_mem: contrôle la quantité de mémoire utilisée pour les opérations de maintenance de la base de données telles que «vide» et «créer un index». Peut réduire considérablement le temps nécessaire pour effectuer ces opérations de maintenance de la base de données.
    • effective_cache_size: définit l'hypothèse de l'optimiseur sur l'efficacité du cache disque O / S. Il n'affecte pas physiquement la mémoire. Ajustez-le sur au moins les 2/3 de la mémoire RAM disponible pour influencer l'optimiseur à effectuer des analyses d'index sur les analyses de table (seqscan).
    • random_page_cost: définit le coût estimé de la récupération non séquentielle. Abaissez-le pour influencer l'optimiseur à effectuer des analyses d'index sur les analyses de table.
    • enable_indexscan: Lorsque défini sur true, l'optimiseur de requête privilégie l'analyse des index par rapport aux analyses de table
    • enable_seqscan: Lorsque défini sur true, l'optimiseur privilégie les analyses de table (séquentielles) sur les analyses d'index.
    • enable_hashjoin: lorsqu'il est défini sur true, l'optimiseur favorise l'utilisation de jointures de hachage.
    • enable_nestloop: lorsqu'il est défini sur true, l'optimiseur favorise l'utilisation des jointures de boucle imbriquées.
    • enable_mergejoin: lorsqu'il est défini sur true, l'optimiseur favorise l'utilisation des jointures de fusion. Utilisé pour régler / tester les requêtes. Remarque: avant de décider d’utiliser les indicateurs de l’optimiseur Postgres (étape 6-10) en production, vous devez revoir les autres paramètres d’optimisation des requêtes (étapes 1 à 5) et affiner
    • max_fsm_pages: définit le nombre maximal de pages de disque pour lesquelles l'espace libre sera suivi dans la carte d'espace libre partagée. Ajustez correctement vers le haut pour rendre le vide plus rapide et pour éliminer / réduire le besoin de «vide complet» ou de «réindexation». Doit être légèrement supérieur au nombre total de pages de données qui seront touchées par les mises à jour et les suppressions entre les aspirateurs. Nécessite peu de mémoire (6 octets par slot), donc soyez généreux en ajustant sa taille. Lorsque vous utilisez le vide avec l'option «verbose», le moteur de base de données vous indique la taille appropriée.