Engines de Consulta de Banco de Dados: Push vs. Pull

2025-04-16

Este artigo explora as diferenças entre mecanismos de consulta de banco de dados baseados em push e pull. Sistemas baseados em pull, semelhantes ao modelo iterador, são acionados pelo consumidor, onde os dados são recuperados sob demanda. Sistemas baseados em push, por outro lado, são acionados pelo produtor, empurrando ativamente os dados para operadores a jusante. Sistemas baseados em push se destacam no tratamento de planos de consulta em forma de DAG (por exemplo, a cláusula WITH do SQL) devido à sua capacidade de empurrar dados eficientemente para vários operadores a jusante, evitando cálculos redundantes e buffer desnecessário. No entanto, sistemas baseados em pull oferecem vantagens ao lidar com certos algoritmos (como junções de mesclagem e cláusulas LIMIT). O artigo examina ainda a eficiência de cache, a simplicidade do código e a adequação de cada modelo em diferentes cenários, concluindo que nenhum é universalmente superior, e a escolha depende de requisitos específicos.

Desenvolvimento mecanismo de consulta