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

Złożony klucz podstawowy PostgreSQL

Jeśli utworzysz złożony klucz podstawowy, na (x, y, z) , PostgreSQL implementuje to za pomocą jednego UNIQUE wielokolumnowy indeks btree na (x, y, z) . Ponadto wszystkie trzy kolumny są NOT NULL (domyślnie), co jest główną różnicą między PRIMARY KEY i UNIQUE INDEX .

Oprócz oczywistych ograniczeń dotyczących danych, indeks wielokolumnowy ma również nieco inny wpływ na wydajność zapytań niż trzy indywidualne indeksy na x , y i z .

Powiązana dyskusja na dba.SE:

  • Praca z indeksami w PostgreSQL

Z przykładami, testami porównawczymi, dyskusją i perspektywą nowej funkcji skanowania tylko z indeksowaniem w Postgresie 9.2.

W szczególności klucz podstawowy w (x, y, z) przyspieszy zapytania z warunkami na x , (x,y) lub (x,y,z) optymalnie. Pomoże również w zapytaniach dotyczących y , z , (y,z) lub (x,z) ale w znacznie mniejszym stopniu.

Jeśli chcesz przyspieszyć zapytania dotyczące tych ostatnich kombinacji, możesz zmienić kolejność kolumn w ograniczeniu PK i/lub utworzyć jeden lub więcej dodatkowych indeksów. Zobacz:

  • Czy indeks złożony jest również odpowiedni dla zapytań w pierwszym polu?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę użyć zapytania z symbolem zastępczym w cudzysłowie? (perl / postgresql)

  2. IntegrityError:rozróżnij unikalne ograniczenie od niezerowych naruszeń

  3. instalacje jednoinstancyjne postgresql

  4. Wybierz odblokowany wiersz w Postgresql

  5. Używanie COALESCE do obsługi wartości NULL w PostgreSQL