Indizes sind nicht für PKs FKs zu sehen, extra einrichten?

Hallo allesamt,
bei meinem Datenmodell sehe ich zumindest in dem Admintool keine Indizes, weder für die FKs noch für die PKs.
Sollte man die zusätzlich einrichten, oder sind Indizes für PKs und vielleicht auch FKs gleich inbegriffen?

mit neugierigen Gruß

Takidoso

Wenn Du einen PK anlegst, wird automatisch ein Index mit dem gleichen Namen angelegt.

Foreign keys werden nicht automatisch indiziert. Es ist aber ratsam dies zu tun, um z.B. JOINs zu beschleunigen.

Wenn in der referenzierten Tabelle häufig Daten gelöscht werden, macht ein Index auf die FK Spalten (der referenzierenden Tabelle) die DELETEs schneller.

1 „Gefällt mir“

Was ist in Postgres dann üblicher, wenn man eine many to many Beziehung hat und sicherstellen möchte, dass die Kombination nur einmal vorkommen und gleichzeitig einen beschleunigten Zugriff sicherzustellen?
a) die beiden Fremdschlüssel in der Beziehungstabelle zusammen zusätzlich als PK definieren

oder

b) die Fremdschlüssel jeweils mit einem Index versehen und beide Fremdschlüssel mit einem Unique-Constraint belegen

Der primary key erzeugt ja einen unique index. Diese Index kann für Abfragen verwendet werden der beide Spalten verwendet oder für Abfrage nur mit der ersten Spalte. Wenn man auch Abfragen hat, die nur die zweite Spalte einschränken, dann braucht man dafür einen weiteren Index.

 create table mapping 
 (
    id1 int references table_1, 
    id2 int references table_2, 
    primary key (id1, id2) -- erzeugt einen unique index auf (id1, id2)
 );
 create index on mapping (id2); -- für z.B. WHERE id2 = 42
1 „Gefällt mir“

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.