MySQL MariaDB

Hvordan finder jeg indekset over en tabel i MySQL?

Hvordan finder jeg indekset over en tabel i MySQL?
Et databankindeks er et dataarrangement, der forbedrer hurtigheden i tabeltransaktioner. Med en eller flere kolonner kan der genereres indekser, der lægger grunden til gensidigt hurtige tilfældige søgninger og effektivt optegnelse af hovedretter. Dette skal huskes, når der konstrueres et indeks, at alle kolonner kastes for at generere SQL-forespørgsler, og også for at konstruere et eller endnu flere indeks for disse kolonner. I praksis er indekser en form for tabeller, der indeholder det primære nøgle- eller indeks-kolonnefelt og refererer til den enkelte tabel for hver post. Brugere kan muligvis ikke se indekserne, disse afvises for at fremskynde forespørgsler, såvel som databasesøgemaskinen vil forbruge dem til at spore poster meget hurtigt.

Indeks ved hjælp af MySQL WorkBench

For det første skal du starte din MySQL Workbench og oprette forbindelse til roddatabasen.

Vi opretter en ny tabel 'kontakter' i databasens 'data' med forskellige kolonner i den. Vi har en primær nøgle og en UNIK nøglekolonne i denne tabel, f.eks.g. id og e-mail. Her skal du præcisere, at du ikke behøver at oprette indekser til kolonnerne UNIQUE og PRIMARY. Databasen opretter automatisk indekserne for begge typer kolonner. Så vi laver indeks 'telefon' for kolonnen 'telefon' og indeks 'navn' for kolonnerne 'første_navn' og 'sidste_navn'. Udfør forespørgslen ved hjælp af flashikonet på proceslinjen.

Du kan se fra output, at tabellen og indekserne er oprettet.

Naviger nu mod skemabjælken. Under listen 'Tabeller' kan du finde den nyoprettede tabel.

Lad os prøve kommandoen SHOW INDEXES for at kontrollere indekser for denne særlige tabel som vist nedenfor i forespørgselsområdet ved hjælp af flash-tegnet.

Dette vindue vises med det samme. Du kan se en kolonne 'Nøglenavn', der viser, at nøglen tilhører hver kolonne. Da vi har oprettet indekset 'telefon' og 'navn', vises det også. Du kan se andre relevante oplysninger om indekser e.g., sekvens af indekset for en bestemt kolonne, indekstype, synlighed osv.

Indekser ved hjælp af MySQL Command Line Shell

Åbn MySQL-kommandolinjeklientskallen fra din computer. Indtast MySQL-adgangskoden for at begynde at bruge.

Eksempel 01
Antag at vi har en tabel 'rækkefølge1' i skemaet 'rækkefølge' med nogle kolonner med værdier som illustreret i billedet. Ved hjælp af kommandoen SELECT skal vi hente posterne for 'order1'.

>> VÆLG * FRA data.rækkefølge1;

Da vi endnu ikke har defineret nogen indekser for tabellen 'rækkefølge1', er det umuligt at gætte. Så vi prøver kommandoen SHOW INDEXES eller SHOW KEYS for at kontrollere indekserne som følger:

>> VIS NØGLER FRA order1 IN data;

Du kan se, at tabellen 'orden1' kun har 1 primær nøglekolonne fra nedenstående output. Dette betyder, at der endnu ikke er defineret nogen indekser, det er derfor, det viser kun 1-række poster for den primære nøglekolonne 'id'.

Lad os kontrollere indekserne for en hvilken som helst kolonne i tabellen 'rækkefølge1', hvor synligheden er slået fra som vist nedenfor.

>> VIS INDEKSER FRA data.rækkefølge1 WHERE VISIBLE = 'NEJ';

Nu opretter vi nogle UNIKE indekser på bordet 'rækkefølge1'.  Vi har navngivet denne UNIKE INDEKS som 'rec' og anvendt den på de 4 kolonner: id, Region, Status og OrderNo. Prøv nedenstående kommando for at gøre det.

>> OPRET UNIKE INDEX rec ON-data.order1 (id, Region, Status, OrderNo);

Lad os nu se resultatet af oprettelse af indekser til den bestemte tabel. Resultatet er angivet nedenfor efter brug af kommandoen SHOW INDEXES. Vi har en liste over alle de oprettede indekser med de samme navne 'rec' for hver kolonne.

>> VIS INDEKSER FRA order1 IN data;

Eksempel 02
Antag en ny tabel 'studerende' i databasens 'data' med fire kolonnefelter med nogle poster. Hent dataene fra denne tabel ved hjælp af SELECT-forespørgslen som følger:

>> VÆLG * FRA data.studerende;

Lad os hente de primære nøglekolonneindekser først ved at prøve nedenstående SHOW INDEXES-kommando.

>> VIS INDEKSER FRA data.studerende WHERE Key_name = 'PRIMÆR';

Du kan se, at det vil sende indeksregistreringen til den eneste kolonne, der har typen 'PRIMÆR' på grund af WHERE-klausulen, der bruges i forespørgslen.

Lad os oprette et unikt og et ikke-unikt indeks på de forskellige tabel 'studerende' kolonner. Vi opretter først UNIQUE-indekset 'std' i kolonnen 'Navn' i tabellen 'student' ved hjælp af kommandoen CREATE INDEX på kommandolinjeklientskallen som nedenfor.

>> OPRET UNIK INDEX data til STD.elevnavn );

Lad os oprette eller tilføje et ikke-unikt indeks i kolonnen 'Emne' i tabellen 'studerende', mens du bruger ALTER-kommandoen. Ja, vi har brugt ALTER-kommandoen, fordi den bruges til at ændre tabellen. Så vi har ændret tabellen ved at tilføje indekser til kolonnerne. Så lad os prøve nedenstående ALTER TABLE-forespørgsel i kommandolinjeskallen tilføje indekset 'stdSub' til kolonnen 'Emne'.

>> ALTER TABLE data.studerende TILFØJ INDEKS stdSub (emne);

Nu er det tur til at tjekke for de nyligt tilføjede indekser på bordet 'student' og dets kolonner 'Navn' og 'Emne'. Prøv nedenstående kommando for at kontrollere det.

>> VIS INDEKSER FRA data.studerende;

Fra output kan du se, at forespørgslerne har tildelt det ikke-unikke indeks til kolonnen 'Emne' og det unikke indeks til kolonnen 'Navn'. Du kan også se navnene på indekserne.

Lad os prøve DROP INDEX-kommandoen for at droppe indekset 'stdSub' fra tabellen 'student'.

>> DROP INDEX stdSub ON-data.studerende;

Lad os se de resterende indekser ved hjælp af den samme SHOW INDEX instruktion som nedenfor. Vi er nu tilbage med de eneste to indekser, der er tilbage i tabellen 'studerende' i henhold til nedenstående output.

>> VIS INDEKSER FRA data.studerende;

Konklusion

Endelig har vi lavet alle de nødvendige eksempler på, hvordan man opretter unikke og ikke-unikke indekser, viser eller kontrollerer indekser og slipper indekserne for den bestemte tabel.

Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....