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

182
Visualizações
Escaneo compartido en Postgres

En la undécima conferencia del curso Introducción a las bases de datos de CMU (2020, 39:37), Andy Pavlo afirma que "solo los sistemas de datos de gama alta admiten el escaneo de búfer compartido, pero Postgres y MySql no". Él no se expande y, por lo tanto, traté de averiguar por qué, pero no pude encontrar ninguna información resumida y quería preguntar aquí antes de sumergirme en la documentación. ¿Andy quiso decir que Postgres no puede admitir esto debido a su implementación, o simplemente aún no se ha implementado?

Si no se puede implementar, ¿qué pasa con el diseño de Postgres que impide que lo haga? ¿Cómo se puede eludir esto? Si es posible, ¿qué impide la implementación hoy? Gracias por adelantado.

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

0

Al escuchar la charla, dice algo como:

Si hacemos una unión por fusión, tenemos que ordenar las tablas. Ahora bien, si detectamos que dos consultas quieren ordenar los mismos datos al mismo tiempo, sería genial si las consultas pudieran superponerse entre sí. Los sistemas de gama alta pueden hacer eso, pero Postgres y MySQL no pueden.

Eso es solo parcialmente cierto.

Es cierto que cada backend (cada consulta) que quiere ordenar tiene que hacerlo por su cuenta, y no hay forma de compartir los resultados ordenados.

Pero no creo que sea una característica muy valiosa:

Cualquiera de las dos consultas probablemente verá diferentes versiones de los datos (imagine una fila insertada entre el inicio de las dos consultas), por lo que no podrían compartir el resultado de todos modos. Por lo tanto, esto solo podría usarse si dos consultas desean ordenar exactamente el mismo conjunto de filas exactamente de la misma manera aproximadamente al mismo tiempo, lo que parece un caso demasiado complicado para agregar una característica complicada. Compartir datos entre backends de PostgreSQL es difícil debido a la arquitectura multiproceso de PostgreSQL.

Pero lo que PostgreSQL puede hacer (y aquí el orador está equivocado) es hacer que dos consultas compartan un escaneo secuencial de la misma tabla: si deja synchronize_seqscans en su valor predeterminado de on , una segunda consulta que quiera escanear la misma tabla como un la consulta que ya se está ejecutando simplemente se conectará a la exploración secuencial en ejecución. Eso es más fácil, porque los datos están en shared_buffers , que es un recurso compartido. Esta característica reduce la E/S si tiene muchas exploraciones secuenciales simultáneas de la misma tabla.

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