Los límites de abstracción son límites de optimización: Elevando abstracciones para la optimización de consultas de bases de datos

2025-07-01
Los límites de abstracción son límites de optimización: Elevando abstracciones para la optimización de consultas de bases de datos

El problema de la consulta N+1, donde una aplicación envía una consulta SQL por cada elemento de una colección, resulta de abstracciones con fugas. En lugar de reducir el límite de abstracción (por ejemplo, diciéndole explícitamente al ORM que obtenga datos en bloque), este artículo propone aumentarlo. Al integrar el ORM en el lenguaje, las reglas de reescritura pueden fusionar N consultas en una. Esto refleja el uso de reglas de reescritura en Haskell para la optimización de listas, aprovechando su naturaleza declarativa para abstraer la semántica operacional de bajo nivel para una mejor optimización. La conclusión principal: elevar el límite de abstracción también eleva el límite de optimización.