Limites de Abstração São Limites de Otimização: Elevando Abstrações para Otimização de Consultas de Banco de Dados

2025-07-01
Limites de Abstração São Limites de Otimização: Elevando Abstrações para Otimização de Consultas de Banco de Dados

O problema da consulta N+1, em que um aplicativo envia uma consulta SQL para cada elemento de uma coleção, resulta de abstrações com vazamentos. Em vez de reduzir a fronteira de abstração (por exemplo, dizendo explicitamente ao ORM para buscar em massa), este artigo propõe aumentá-la. Ao integrar o ORM à linguagem, regras de reescrita podem mesclar N consultas em uma. Isso reflete o uso de regras de reescrita em Haskell para otimização de listas, aproveitando sua natureza declarativa para abstrair a semântica operacional de baixo nível para melhor otimização. A principal conclusão: aumentar a fronteira de abstração também aumenta a fronteira de otimização.