Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda