Databaser har mye jargong, og kardinalitet er et av de ordene som erfarne mennesker har en tendens til å glemme at de ikke visste en gang om gangen. Men hvis DU ikke vet det—og det tar litt tid å virkelig bli komfortabel med kardinalitet—det er super forvirrende når DBA bare slipper det inn i midten av en setning uten å bremse ned! Frykt ikke: jeg har deg, som de sier.Kardinalitet betyr to ting i databaser. For vårt formål betyr det ene mye mer enn det andre. La oss gjøre det enkle først, og deretter grave inn i den som betyr noe for spørringsytelse.Definisjonen av kardinalitet som betyr mye for spørringsytelse er datakardinalitet. Dette handler om hvor mange forskjellige verdier som er i en kolonne.Den første betydningen av kardinalitet er når du utformer databasen-det som kalles datamodellering. I denne forstand betyr kardinalitet om et forhold er en-til-en, mange-til-en eller mange-til-mange. Så du snakker virkelig om forholdet kardinalitet.Cardinality offisielle, ikke-database ordbok definisjon er matematisk: antall verdier i et sett. Når det brukes på databaser, er betydningen litt annerledes: det er antall forskjellige verdier i en tabellkolonne, i forhold til antall rader i tabellen. Gjentatte verdier i kolonnen teller ikke.Vi snakker vanligvis ikke om kardinalitet som et tall, skjønt. Det er mer vanlig å bare snakke om » høy » og » lav » kardinalitet. Mange forskjellige verdier er høy kardinalitet; mange gjentatte verdier er lav kardinalitet.Bilde en produktbeskrivelse tabell i en e-handelsdatabase:ProductID
kolonnen kommer til å være høy kardinalitet fordi det sannsynligvis er primærnøkkelen til tabellen, så den er helt unik. Hvis det er tusen rader i tabellen, vil det være tusen forskjelligeProductID
verdier. KolonnenCategory
vil ha mye repetisjon, og det vil være lav eller middels kardinalitet: kanskje 50 eller 100 forskjellige Category
verdier. Name
er sannsynligvis høy kardinalitet, med mindre det er mer til dette bordet enn det som møter øyet(for eksempel flere rader for forskjellige produktfarger og andre variasjoner).Kardinalitet påvirker ytelsen mye, fordi det påvirker utførelsesplanen for spørringen. Planner vil undersøke kolonne statistikk og bruke dem til å finne ut hvor mange verdier en spørring er sannsynlig å matche, blant annet. Avhengig av hva den finner, kan den bruke forskjellige kjøringsplaner for spørring for å prøve å få best mulig ytelse. Men det er et tema for et annet blogginnlegg, fordi det tar litt arbeid å explain.So nå, neste gang noen faller «høy kardinalitet» i en setning uten å pause, vet du at de virkelig betyr » mange forskjellige verdier.»Og der har du det!
Maybaygiare.org
Blog Network
Maybaygiare.org
Blog Network