Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære B-Træ Indeksering | Forespørgselsoptimering.Indekser
Quizzes & Challenges
Quizzes
Challenges
/
SQL-optimering og Forespørgselsfunktioner

bookB-Træ Indeksering

Et B-tree-indeks er en balanceret trædatastruktur, der ofte anvendes i databaser til effektiv organisering og søgning i store datamængder.
B-træer minder meget om binære søgetræer (BST), men noderne i et B-træ kan have mere end to børn.

B-træet gemmer nøgler i sorteret rækkefølge inden for noderne, hvilket muliggør hurtig datahentning gennem hierarkisk gennemgang fra roden til bladnoderne. B-tree-indeksering egner sig godt til intervalforespørgsler og lighedssøgninger, hvilket gør det til et populært valg for optimering af databaseydelse.

Hvordan fungerer det?

B-tree-indekset organiserer data på en hierarkisk måde, hvor hver node indeholder et fast antal nøgler og pegere til underordnede noder.
B-træer opretholder balance ved at sikre, at alle bladnoder er på samme niveau, hvilket optimerer søgeoperationer.
Når der søges efter en bestemt nøgle, gennemløber B-tree-algoritmen træet fra rodnoden ned til bladnoderne og anvender binær søgning for effektivt at finde den ønskede nøgle.

Indekssøgning indebærer at traversere træet for at nå bladnoderne, følge bladnodekæden for at finde matchende poster og hente de faktiske data fra disken.

I figuren vises opslaget efter nøgle 302:

  1. En søgetræstruktur er en type træ, hvor hver node har to pegepinde: venstre pegepind peger på underordnede noder med værdier mindre end forældrenoden, og højre pegepind peger på underordnede noder med værdier større end forældrenoden;

  2. I et B-træ kan rodnoden indeholde flere indeksværdier. For eksempel, hvis roden indeholder tre forskellige værdier, vil den have tre pegepinde, som hver angiver intervallet af værdier mellem disse nøgleværdier;

  3. For at søge efter en nøgle, såsom 302, starter søgningen ved rodnoden og følger de relevante pegepinde ned til bladnoderne. Søgningen er fuldført efter at have traverseret tre træblokke, som vist i diagrammet markeret med rødt;

  4. For at søge efter et interval af værdier startende fra 302, kan du bruge de horisontale pegepinde mellem bladnoderne. For eksempel hentes værdier fra 302 til 502 ved sekventielt at følge bladnoderne.

Note
Bemærk

Nøglen, der bruges til søgning i et B-træsindeks, stammer fra værdierne, der er gemt i de indekserede kolonne(r) i databasetabellen. For eksempel, hvis indekset er på en kolonne som "client_id", vil søgenøglen være de faktiske "client_id"-værdier. Hver unik numerisk værdi i den indekserede kolonne fungerer som en nøgle i B-træsindekset, hvilket gør det lettere at finde og hente de tilsvarende rækker i databasetabellen.

Fordele og ulemper

I modsætning til den standard Binary Search Tree-datastruktur kan B-tree noder rumme mere end 2 børn. Det maksimale antal børn pr. node er som standard typisk sat til 16.

Indeksimplementering

For at oprette et B-tree-indeks på en kolonne i PostgreSQL kan du bruge følgende SQL-kommando:

CREATE INDEX index_name ON table_name USING BTREE (column_name1, column_name2,...);

Da B-tree-indekset er et standardindeks i SQL, kan vi også bruge følgende erklæring til at oprette det:

CREATE INDEX index_name ON table_name(column_name1, column_name2,..);
Note
Bemærk

I SQL, når du opretter en tabel med en primær nøglebegrænsning, opretter de fleste databasehåndteringssystemer automatisk et indeks på den eller de kolonner, der er angivet i primærnøglen. Dette indeks hjælper med at håndhæve unicitetsbegrænsningen for primærnøglen og forbedrer også ydeevnen for forespørgsler, der involverer søgning eller sammenkobling baseret på primærnøglekolonnen eller -kolonnerne.

question mark

Hvilken operation vil IKKE få et B-tree-indeks til at blive reorganiseret eller rebalanceret i PostgreSQL?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you explain the difference between a B-tree and a binary search tree in more detail?

What are some real-world examples where B-tree indexes are especially useful?

How does a B-tree index improve the performance of range queries?

Awesome!

Completion rate improved to 4.55

bookB-Træ Indeksering

Stryg for at vise menuen

Et B-tree-indeks er en balanceret trædatastruktur, der ofte anvendes i databaser til effektiv organisering og søgning i store datamængder.
B-træer minder meget om binære søgetræer (BST), men noderne i et B-træ kan have mere end to børn.

B-træet gemmer nøgler i sorteret rækkefølge inden for noderne, hvilket muliggør hurtig datahentning gennem hierarkisk gennemgang fra roden til bladnoderne. B-tree-indeksering egner sig godt til intervalforespørgsler og lighedssøgninger, hvilket gør det til et populært valg for optimering af databaseydelse.

Hvordan fungerer det?

B-tree-indekset organiserer data på en hierarkisk måde, hvor hver node indeholder et fast antal nøgler og pegere til underordnede noder.
B-træer opretholder balance ved at sikre, at alle bladnoder er på samme niveau, hvilket optimerer søgeoperationer.
Når der søges efter en bestemt nøgle, gennemløber B-tree-algoritmen træet fra rodnoden ned til bladnoderne og anvender binær søgning for effektivt at finde den ønskede nøgle.

Indekssøgning indebærer at traversere træet for at nå bladnoderne, følge bladnodekæden for at finde matchende poster og hente de faktiske data fra disken.

I figuren vises opslaget efter nøgle 302:

  1. En søgetræstruktur er en type træ, hvor hver node har to pegepinde: venstre pegepind peger på underordnede noder med værdier mindre end forældrenoden, og højre pegepind peger på underordnede noder med værdier større end forældrenoden;

  2. I et B-træ kan rodnoden indeholde flere indeksværdier. For eksempel, hvis roden indeholder tre forskellige værdier, vil den have tre pegepinde, som hver angiver intervallet af værdier mellem disse nøgleværdier;

  3. For at søge efter en nøgle, såsom 302, starter søgningen ved rodnoden og følger de relevante pegepinde ned til bladnoderne. Søgningen er fuldført efter at have traverseret tre træblokke, som vist i diagrammet markeret med rødt;

  4. For at søge efter et interval af værdier startende fra 302, kan du bruge de horisontale pegepinde mellem bladnoderne. For eksempel hentes værdier fra 302 til 502 ved sekventielt at følge bladnoderne.

Note
Bemærk

Nøglen, der bruges til søgning i et B-træsindeks, stammer fra værdierne, der er gemt i de indekserede kolonne(r) i databasetabellen. For eksempel, hvis indekset er på en kolonne som "client_id", vil søgenøglen være de faktiske "client_id"-værdier. Hver unik numerisk værdi i den indekserede kolonne fungerer som en nøgle i B-træsindekset, hvilket gør det lettere at finde og hente de tilsvarende rækker i databasetabellen.

Fordele og ulemper

I modsætning til den standard Binary Search Tree-datastruktur kan B-tree noder rumme mere end 2 børn. Det maksimale antal børn pr. node er som standard typisk sat til 16.

Indeksimplementering

For at oprette et B-tree-indeks på en kolonne i PostgreSQL kan du bruge følgende SQL-kommando:

CREATE INDEX index_name ON table_name USING BTREE (column_name1, column_name2,...);

Da B-tree-indekset er et standardindeks i SQL, kan vi også bruge følgende erklæring til at oprette det:

CREATE INDEX index_name ON table_name(column_name1, column_name2,..);
Note
Bemærk

I SQL, når du opretter en tabel med en primær nøglebegrænsning, opretter de fleste databasehåndteringssystemer automatisk et indeks på den eller de kolonner, der er angivet i primærnøglen. Dette indeks hjælper med at håndhæve unicitetsbegrænsningen for primærnøglen og forbedrer også ydeevnen for forespørgsler, der involverer søgning eller sammenkobling baseret på primærnøglekolonnen eller -kolonnerne.

question mark

Hvilken operation vil IKKE få et B-tree-indeks til at blive reorganiseret eller rebalanceret i PostgreSQL?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2
some-alt