Considera chiedere al tuo database un elenco dei primi 2000 utenti i cui nomi iniziano con "Ab" e hanno più di 20 anni. Inoltre devono essere maschi.
Ecco un piccolo diagramma.
You Program Processor
------------------------------------------------------------------------------
Get the first 2000 users ---------->---------- OK!
--------------------- So I'll go get those records...
WAIT! Also, they have to ---------->---------- Gotcha!
start with "Ab"
--------------------- NOW I'll get them...
WAIT! Make sure they're ---------->---------- Good idea Boss!
over 20!
--------------------- Let's go then...
And one more thing! Make ---------->---------- Anything else? Ugh!
sure they're male!
No that is all. :( ---------->---------- FINE! Getting records!
--------------------- Here you go.
Thanks Postgres, you're ---------->---------- ...
my only friend.
Come puoi vedere da questa terribile interazione, il "database" non sta facendo nulla finché non è pronto a gestire tutte le condizioni. È il risultato di caricare pigro ad ogni passo e applicare ogni volta nuove condizioni.
Al contrario di ottenere i primi 2000 utenti, restituendoli, filtrandoli per "Ab", restituendoli, filtrandoli per oltre 20, restituendoli, filtrandoli per il maschio e infine restituendoli.
Caricamento lento in poche parole.