Hvordan og når du skal lage en indeks i mysql

Hvordan og når du skal lage en indeks i mysql
Når det gjelder ytelsesoptimalisering for MySQL -databaser, er det å lage indekser en av de beste måtene. SQL -indekser er med på å forbedre databaseytelsen ved å gi rask tilgang til dataene som er lagret i databasen.

En SQL -indeks er ikke så forskjellig fra en normal bokindeks med en kuratert liste over informasjon og hvor du kan finne dem.

I denne opplæringen vil vi diskutere når vi skal lage en SQL -indeks fordi selv om indekser kan bidra til å optimalisere ytelsen, kan de også forårsake langsom ytelse og andre negative effekter. Vi skal også diskutere hvordan du oppretter en indeks ved hjelp av en ekte database.

La oss komme i gang:

Når skal du opprette en indeks i MySQL?

Dessverre har jeg ikke noe direkte svar på når du skal opprette en indeks. Noen scenarier og faktorer kan imidlertid påvirke opprettelsen av en indeks. Det er godt å merke seg at du kanskje må gjøre noen avveininger når du oppretter en indeks

  1. Høy tilgjengelighet: Hvis du har en tabell eller kolonne som er tilgjengelig regelmessig, kan du øke ytelsen ved å opprette en indeks.
  2. Størrelse: Størrelsen på dataene som er lagret i en tabell eller kolonne kan også spille en rolle i å avgjøre når en indeks er nødvendig. Et stort bord kan ha mer fordel av indekser enn et mindre bord.
  3. Indeksnøkkel: Datatypen til heltalltasten er også en faktor. For eksempel er et heltall en mye bedre indeksnøkkel på grunn av sin lille størrelse.
  4. CRUD -operasjoner: Hvis du har en tabell eller kolonne med et høyere antall CRUD -operasjoner, kan det være fordelaktig å indeksere den tabellen eller kolonnen.
  5. Databasestørrelse: Indeksering er en datastruktur som vil okkupere plass i databasen din, som kan være en faktor, spesielt i allerede store databaser.

Ovennevnte er noen av de viktigste konseptene som kan spille inn når du bestemmer når du skal opprette en databaseindeks.

Hvis du vil lære mer om hvordan MySQL bruker indekser, kan du vurdere å lese ressursen som er gitt nedenfor:

https: // dev.mysql.com/doc/refman/8.0/no/mysql-indekser.html

Grunnleggende MySQL indekserer bruk

Når du har opprettet en tabell med en primærnøkkel, oppretter MySQL automatisk en spesiell indeks kalt primær, lagret med dataene. Dette er vanligvis kjent som en gruppert indeks.

For å opprette en indeks i MySQL, kan vi bruke syntaks som er vist nedenfor:

Opprett indeksindeks_navn på TBL_NAME (COLS);

Vi starter med å ringe Create Index -leddet, etterfulgt av navnet på indeksen vi ønsker å opprette. Vi spesifiserer deretter tabellen der indeksen ligger og til slutt kolonnene.

Du kan også opprette en indeks når du oppretter en tabell, som vist i syntaksen nedenfor:

Opprett tabell TBL_name (Col1, Col2, Col3, Index (Col1, Col2));

MERK: Standard MySQL -indekstype er en Btree med mindre eksplisitt spesifiseres.

Eksempel Bruk sak

Ved å bruke et eksempel, la meg illustrere hvordan vi kan lage en indeks for den spesifikke tabellen for å forbedre ytelsen.

Jeg vil bruke filmbordet i de ansattes database. Du kan finne ressursen fra ressurssiden nedenfor:

https: // dev.mysql.com/doc/indeks-annet.html

La oss først se bak-the-scene-prosessen MySQL bruker for å behandle en enkel Select-setning der kjønn er lik F.

Forklar valgt emp_no, first_name, last_name fra ansatte der kjønn = 'f';

Gitt størrelsen på tabellen og spurte data, er det ikke veldig effektivt å skanne mer enn 200 000 rader. I så fall kan vi redusere denne verdien ved å opprette en indeks.

For å lage en indeks, kan vi gjøre:

Lag indeksens kjønn på ansatte (kjønn);

Når vi har opprettet indeksen, vil MySQL skanne verdiene som vist i utgangen ovenfor.

Konklusjon

Jeg håper denne opplæringen har gitt deg en dypere forståelse av å bruke MySQL -indekser for å forbedre databaseytelsen.

Takk for at du leser.