sql >> Database >  >> RDS >> PostgreSQL

DB associatieve entiteiten en indexering

Indexen op de pk-kolommen waarnaar wordt verwezen in de andere tabellen bedek het niet.

Door de twee fk-kolommen te definiëren als samengestelde primaire sleutel van de tabel "associatieve entiteit" (zoals u in de meeste gevallen zou moeten doen - op voorwaarde dat associaties uniek zijn), maakt u impliciet een index met meerdere kolommen.

Dat dekt alle zoekopdrachten met betrekking tot beide of de eerste kolommen optimaal.
Het dekt ook zoekopdrachten in de tweede kolom , maar op een minder effectieve manier.
Als je belangrijke zoekopdrachten hebt die alleen betrekking hebben op de tweede kolom, maak dan ook een extra index op die kolom.

Lees alle details over het onderwerp op deze gerelateerde vraag over dba.SE .
Of deze vraag op SO , die ook over dit onderwerp gaat.



  1. MySQL-insert op dubbele sleutel; verwijderen?

  2. SQL-query om te sorteren en unieke telling te bereiken

  3. MySQL-queryvolgorde op meest ingevulde velden

  4. Kan niet INSERT:FOUT:matrixwaarde moet beginnen met { of dimensie-informatie