Moteurs de requête de bases de données : Push vs. Pull

2025-04-16

Cet article explore les différences entre les moteurs de requête de bases de données basés sur le push et le pull. Les systèmes basés sur le pull, similaires au modèle itérateur, sont pilotés par le consommateur, où les données sont récupérées à la demande. Les systèmes basés sur le push, à l'inverse, sont pilotés par le producteur, poussant activement les données vers les opérateurs en aval. Les systèmes basés sur le push excellent dans la gestion des plans de requête en forme de DAG (par exemple, la clause WITH de SQL) grâce à leur capacité à pousser efficacement les données vers plusieurs opérateurs en aval, évitant les calculs redondants et la mise en mémoire tampon inutile. Cependant, les systèmes basés sur le pull offrent des avantages lorsqu'il s'agit de gérer certains algorithmes (comme les jointures de fusion et les clauses LIMIT). L'article examine également l'efficacité du cache, la simplicité du code et l'adéquation de chaque modèle dans différents scénarios, concluant qu'aucun n'est universellement supérieur, le choix dépendant des exigences spécifiques.

Développement moteur de requête