Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

181
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!