Guide de décision sur la mise en cache PostgreSQL

Ce guide compare le cache de pages PostgreSQL, le SQL préparé, le cache de lignes complètes, les vues matérialisées et Redis selon le travail évité par chaque option.

Commencer par le travail répété

Besoin Option Travail évité
Garder en mémoire les pages de table et d’index shared_buffers PostgreSQL et cache du système d’exploitation Lectures du stockage ; le SQL est toujours exécuté
Répéter une instruction dans une session Instruction préparée Analyse et parsing répétés
Lire des lignes complètes par clé primaire MGET RESP authentifié avec pg_local_cache Lectures admissibles de lignes complètes depuis la source
Réutiliser des jointures ou des agrégats Vue matérialisée Recalcul du résultat stocké jusqu’à son rafraîchissement
Partager des objets entre services Redis cache-aside Lectures de la source gérées par l’application

Pages et SQL préparé

shared_buffers met en cache des pages de base de données, pas les résultats finaux de SELECT. PostgreSQL vérifie toujours la visibilité, exécute la requête et construit chaque résultat. Une instruction préparée réduit le parsing répété ; elle est tout de même exécutée sur l’état courant de la base.

Consultez Cache de lignes ou shared_buffers pour voir le travail restant sur chaque chemin.

Lignes complètes par clé primaire

pg_local_cache stocke des lignes complètes dans la mémoire partagée limitée de PostgreSQL. Un MGET RESP authentifié peut renvoyer une ligne mise en cache qui remplit les critères ; le SQL ordinaire n’utilise jamais ce cache. Les misses et lectures non admissibles utilisent la table source. Le point de terminaison utilise un seul rôle de base configuré et ne partage pas la transaction SQL ni le snapshot de l’appelant. Consultez le guide des lectures par lots, la référence technique et le guide d’invalidation.

Vues et caches externes

Une vue matérialisée PostgreSQL stocke le résultat d’une requête et est rafraîchie à la demande. Elle convient aux rapports et agrégats dont la fraîcheur dépend du moment du rafraîchissement.

Redis convient aux objets applicatifs partagés entre processus. L’application gère les clés, la sérialisation, les TTL et l’invalidation. Consultez PostgreSQL et Redis cache-aside. Lancez le guide de démarrage rapide pour essayer le cache de lignes.

Mis à jour .