Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

211
Visualizações
PostgreSQL: almacenamiento de datos que nunca cambian

¿Hay alguna forma en PostgreSQL de marcar una tabla como datos de almacenamiento que nunca cambiarán después de la inserción, mejorando así el rendimiento? Un ejemplo en el que esto podría ayudar son los escaneos de solo índice y los índices de cobertura :

Sin embargo, para los datos que rara vez cambian, hay una forma de evitar este problema. PostgreSQL rastrea, para cada página en el montón de una tabla, si todas las filas almacenadas en esa página son lo suficientemente antiguas como para ser visibles para todas las transacciones actuales y futuras. Esta información se almacena en un bit en el mapa de visibilidad de la tabla. Una exploración de solo índice, después de encontrar una entrada de índice candidata, verifica el bit del mapa de visibilidad para la página del montón correspondiente. Si está configurado, la fila es visible y, por lo tanto, los datos se pueden devolver sin más trabajo. Si no está configurado, se debe visitar la entrada del montón para averiguar si está visible, por lo que no se obtiene una ventaja de rendimiento sobre un escaneo de índice estándar.

Si PostgreSQL supiera que los datos en una tabla nunca cambian, las entradas del montón nunca tendrían que visitarse en escaneos de solo índice.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esto es un poco difícil de seguir en la documentación, pero básicamente necesita vacuum la tabla después de haberla creado. Entonces, si no hay cambios (ni bloqueos), no se preocupe.

La documentación explica que aspirar actualiza el mapa de visibilidad:

El comando VACUUM de PostgreSQL tiene que procesar cada tabla regularmente por varias razones:

. . .

  1. Para actualizar el mapa de visibilidad, lo que acelera los escaneos de solo índice.
over 4 years ago · Santiago Trujillo Relatório

0

Si tiene datos que realmente nunca cambian, ejecute VACUUM (FREEZE) en la tabla. Si no hay una transacción simultánea de larga duración, eso marcará todos los bloques en el mapa de visibilidad como "totalmente congelados" y "totalmente visibles". Entonces obtendrá escaneos de solo índice y el autovacío anti-envolvente no tendrá que hacer ningún trabajo en la mesa.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda