PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Używanie tabeli tymczasowej do zastąpienia klauzuli WHERE IN

Nie musisz się martwić konfliktem.

Schemat pg_temp jest specyficzny dla sesji. Jeśli masz jednoczesną instrukcję w oddzielnej sesji, użyje ona innego schematu (nawet jeśli widzisz, że ma taką samą nazwę).

Jednak dwie uwagi:

  1. Za każdym razem, gdy tworzysz obiekty tymczasowe, katalog systemowy tworzy tymczasowy schemat i same obiekty. Może to prowadzić do bałaganu, jeśli jest często używane.

    Dlatego w przypadku małych zestawów/częstych zastosowań zwykle lepiej jest trzymać się in lub with oświadczenie (z obydwoma, z którymi Postgres radzi sobie całkiem nieźle). Czasami przydatne jest również „nakłonienie” planisty do korzystania z dowolnego planu, za pomocą niezmiennej funkcji zwracającej zestaw.

  2. Jeśli zdecydujesz się faktycznie korzystać z tabel tymczasowych, zwykle lepiej jest je zindeksować i przeanalizować po ich wypełnieniu. W przeciwnym razie robisz niewiele więcej niż pisanie with oświadczenie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy kolejność PostgreSQL jest w pełni gwarantowana w przypadku sortowania według nieunikalnego atrybutu?

  2. Wdróż Postgres11 w Elastic Beanstalk — wymaga /etc/redhat-release

  3. Zapytanie zagnieżdżone w squeel

  4. postgresql generuje sekwencję bez przerw

  5. Postgres, aby pobrać listę z wartościami oddzielonymi przecinkami