SELECT DISTINCT en Postgres no escala, y el índice no ayuda

Postgres SELECT DISTINCT Does Not Scale

SELECT DISTINCT en Postgres no escala, y el índice no ayuda

Peter Kraft, de DBOS, describe un problema real en una cola particionada sobre Postgres: SELECT DISTINCT resultó ser la consulta más costosa pese a parecer la más simple. La cláusula siempre recorre todas las filas que cumplen el filtro, sin importar cuántos valores únicos haya ni cómo esté indexada la tabla. El artículo explica las decisiones de diseño detrás de este comportamiento y cómo sortearlo.

No importa cómo indexes tu tabla, no importa qué pocos valores únicos haya que recuperar: SELECT DISTINCT siempre escaneará todas las filas que coincidan con sus predicados.

Más de este día

2026-09-26