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

Ændre udførelsesplanen for forespørgslen i postgresql manuelt?

Brug en underforespørgsel eller CTE at gennemtvinge visse operationer først. Ligesom:

SELECT *
FROM  (
   SELECT *
   FROM   tbl
   LIMIT  10
   ) x
ORDER  BY 1;

Du skal forstå hvad du gør, selvfølgelig. I eksemplet vælger jeg 10 vilkårlige rækker og derefter sortere dem efter den første kolonne.
Du kan bruge flere lag af underforespørgsler eller flere CTE'er i en række.

Samme eksempel som CTE:

WITH x AS (
   SELECT *
   FROM   tbl
   LIMIT  10
   )
SELECT *
FROM   x
ORDER  BY 1;

En underforespørgsel er normalt hurtigere til simple forespørgsler, en CTE tilbyder yderligere funktioner (som at genbruge den samme CTE flere steder på forskellige forespørgselsniveauer).



  1. Hvordan opretter man forbindelse til MySQL-database i PHP ved hjælp af mysqli-udvidelse?

  2. Få ID for sidst indsatte post i oracle db

  3. Vis den valgte alternativknap på redigeringssiden

  4. Sådan konverteres en MySQL-database til UTF-8-kodning