sql >> Database >  >> RDS >> PostgreSQL

Een tijdelijke tabel gebruiken om een ​​WHERE IN-component te vervangen

U hoeft zich geen zorgen te maken over het conflict.

Het pg_temp-schema is sessiespecifiek. Als u een gelijktijdige instructie in een afzonderlijke sessie heeft, gebruikt deze een ander schema (zelfs als u ziet dat deze dezelfde naam heeft).

Twee opmerkingen echter:

  1. Elke keer dat u tijdelijke objecten maakt, maakt de systeemcatalogus een tijdelijk schema en de objecten zelf. Dit kan tot rommel leiden als het vaak wordt gebruikt.

    Dus voor kleine sets/frequent gebruik is het meestal beter om een ​​in . te gebruiken of een with verklaring (waarbij Postgres vrij goed overweg kan). Het is ook af en toe handig om de planner te "verleiden" om het plan te gebruiken dat u zoekt door een onveranderlijke set-retourfunctie te gebruiken.

  2. Als u besluit om tijdelijke tabellen daadwerkelijk te gebruiken, is het meestal beter om ze te indexeren en te analyseren als u ze eenmaal hebt gevuld. Anders doe je niet veel meer dan een with . schrijven verklaring.



  1. Postgres wikkelt subqueryresultaten tussen haakjes

  2. Wat zijn enkele methoden om dubbel posten in een formulier te voorkomen? (PHP)

  3. Niet-gespecificeerde runtime-fout tijdens het uitvoeren van vba-script

  4. Volgende automatische verhoging ophalen