PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Използване на временна таблица за замяна на клауза WHERE IN

Няма нужда да се тревожите за конфликта.

Схемата pg_temp е специфична за сесията. Ако имате паралелен израз в отделна сесия, той ще използва различна схема (дори ако го виждате със същото име).

Две бележки обаче:

  1. Всеки път, когато създавате временни обекти, системният каталог създава временна схема и самите обекти. Това може да доведе до бъркотия, ако се използва често.

    По този начин, за малки комплекти/чести употреби, обикновено е по-добре да се придържате към in или with оператор (и с двата Postgres се справя доста добре). Също така понякога е полезно да "подмамите" планиращия да използва какъвто и да е план, който търсите, като използвате функция за връщане на неизменен набор.

  2. В случай, че решите наистина да използвате временни таблици, обикновено е по-добре да ги индексирате и анализирате, след като ги попълните. В противен случай не правите нищо повече от писане на with изявление.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. намиране на подобни книги въз основа на закупени книги въз основа на мета ключови думи за книги

  2. PHP/MySQL INSERT функция логическа грешка

  3. PostgreSQL generate_series() със SQL функция като аргументи

  4. Как да работя с десетични знаци с висока точност в PHP

  5. Актуализирайте стойността на колоната PostgreSQL