Maybaygiare.org

Blog Network

Vad är kardinalitet i en databas?

databaser har mycket jargong, och kardinalitet är ett av de ord som erfarna människor tenderar att glömma att de inte visste en gång i tiden. Men om du inte vet det – och det tar ett tag att verkligen bli bekväm med kardinalitet—är det super förvirrande när DBA bara släpper det i mitten av en mening utan att sakta ner! Frukta inte: I ’ ve got you, som de säger.Kardinalitet betyder två saker i databaser. För våra ändamål betyder det ena mycket mer än det andra. Låt oss göra den enkla först och gräva sedan in i den som är viktig för frågeprestanda.Definitionen av kardinalitet som betyder mycket för frågeprestanda är datakardinalitet. Det handlar om hur många olika värden som finns i en kolumn.Den första betydelsen av kardinalitet är när du utformar databasen—det som kallas datamodellering. I denna mening, kardinalitet betyder om en relation är en-till-en, många-till-en, eller många-till-många. Så du pratar verkligen om förhållandet kardinalitet.Kardinalitet officiella, icke-databas ordbok definition är matematisk: antalet värden i en uppsättning. När den tillämpas på databaser är betydelsen lite annorlunda: det är antalet distinkta värden i en tabellkolumn, i förhållande till antalet rader i tabellen. Upprepade värden i kolumnen räknas inte.Vi pratar vanligtvis inte om kardinalitet som ett nummer. Det är vanligare att bara prata om ”hög” och ”låg” kardinalitet. Många distinkta värden är hög kardinalitet; många upprepade värden är låg kardinalitet.Bild en produktbeskrivningstabell i en e-handelsdatabas:ProductID kolumnen kommer att vara hög kardinalitet eftersom det förmodligen är den primära nyckeln till den tabellen, så den är helt unik. Om det finns tusen rader i tabellen kommer det att finnas tusen olika ProductID värden. KolumnenCategory kommer att ha mycket repetition, och det kommer att vara låg eller medium kardinalitet: kanske 50 eller 100 olikaCategory värden. Name är förmodligen hög kardinalitet, såvida det inte finns mer i denna tabell än vad som möter ögat (till exempel flera rader för olika Produktfärger och andra variationer).Kardinalitet påverkar prestanda mycket, eftersom det påverkar frågekörningsplanen. Planeraren kommer att undersöka kolumnstatistik och använda dem för att räkna ut hur många värden en fråga sannolikt kommer att matcha, bland annat. Beroende på vad den hittar kan den använda olika frågekörningsplaner för att försöka få bästa prestanda. Men det är ett ämne för ett annat blogginlägg, för det tar lite arbete att explain.So nu, nästa gång någon tappar ”hög kardinalitet” i en mening utan att pausa, du vet att de verkligen betyder ”många olika värden.”Och där har du det!

Lämna ett svar

Din e-postadress kommer inte publiceras.