sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad betyder hashed underplan i PostgreSQL?

Du har den misforståelse, at optimizeren omskriver SQL-sætningen. Det er ikke tilfældet. Omskrivning af forespørgslen er forespørgselsomskriverens opgave , som for eksempel erstatter synspunkter med deres definition. Optimizeren kommer med en sekvens af udførelsestrin for at beregne resultatet. Det producerer en plan , ikke en SQL-sætning.

Optimizeren planlægger to alternativer:enten udfør underplan 1 for hver række fundet, eller eksekver underplan 2 én gang (bemærk, at den er uafhængig af a ), opbyg en hash-tabel ud fra resultatet og probe, der hash for hver række fundet i a .

På udførelsestidspunktet beslutter PostgreSQL at bruge den sidstnævnte strategi, det er grunden til, at underplan 1 aldrig udføres.




  1. Træk kolonner fra afledt tabel og summer dem i én MySQL SELECT-sætning

  2. Forbedrer begrænsning af en forespørgsel til én post ydeevnen

  3. MySQL- GROUP og COUNT efter dato

  4. Hvordan kan jeg tilføje et afkrydsningsfelt til en datatabel, der skal bruges til at slette den valgte række?