SQLite Vis indekser

SQLite Vis indekser
“En indeks er en type datastruktur som integrerer og optimaliserer verdiene til en kolonne (eller kolonner) for å søke. Indekser (eller indekser) er unike for databaseoppslag ved at de lar visse rader i en tabell være plassert uten å skanne hele tabellen. Som et resultat kan indekser forbedre ytelsen til noen spørsmål betydelig. Indekser er alltid assosiert med en enkelt tabell; Imidlertid kan de omfatte mange kolonner fra tabellen.Normalt tillater indekser dupliserte verdier; Imidlertid forhindrer det unike søkeordet dupliserte verdier fra å bli satt inn eller oppdatert i en tabell med en ikke-unik verdi. Fordi null ikke er ansett som en verdi, vil en unik indeks ikke hindre en eller flere null fra å vises. Du må spesifisere ikke null i den første tabelldefinisjonen for å forhindre null.

Når du slipper en indeks, fjernes den fra databasen, men tabellen den er assosiert med er ikke påvirket.

Med et eksempel vil vi lære hvilke indekser som er i SQLite, hvordan du angir indekser på enkelt- eller mange kolonner i SQLite, og hvordan du fjerner eller slipper SQLite -indekser; Deretter vil vi diskutere hvordan vi skal vise dem i SQLite.”

Syntaks av SQLite -indekser

Opprette [unik] indeks [hvis ikke eksisterer] indeks_navn på tabell_navn (kolonner ... n);

CREATE Index -setningen brukes i syntaks ovenfor for å bygge en ny indeks; Det oppgitte indeksnavnet refererer til et spesifikt indeksnavn som vi trenger å generere. Nøkkelordene på og indeks er nøkkelord, og den spesifiserte tabellen refererer til en eksisterende tabell med et kolonnavn.

Hvis vi har mer enn ett felt og at data må defineres unikt slik at vi kan bruke det unike nøkkelordet, kan vi bruke det unike nøkkelordet; En unik klausul er en valgfri komponent i denne syntaksen.

Sentrale punkter for SQLite Index

  • Bruken av en indeks fremskynder velger søk og hvor klausuler; Imidlertid reduserer den datainndata i oppdatering og setter inn operasjoner. Det er ingen innflytelse på dataene når indekser opprettes eller elimineres.
  • En indeks opprettes med Create Index -setningen. Den lar deg navngi indeksen, gi tabellen og hvilken indeks over kolonne eller kolonner, og definere om indeksen skal være i stigende eller synkende rekkefølge.
  • Indekser er også unike, på samme måte som den unike begrensningen forbyr dupliserte poster i kolonnen eller samlingen av kolonner som indeksen opprettes.

Hvordan fungerer indekser i sqlite

En spesifikk tabell må være koblet til hver indeks. En indeks kan inneholde ett eller enda flere felt, men de må alle være i samme tabell. Flere indekser finner du i en tabell.

SQLite gir en B-tre-struktur for å lagre indeksdata når du legger til en indeks. Indeksene i SQLite er organisert ved bruk av B-Tree-metoden. B-treet er et balansert tre i stedet for et binært tre, da B står for balansert.

Indeksen inneholder verdier fra kolonnene som vi definerte i indeksen, så vel som ROW_ID -verdien for hver av disse kolonnene. SQLite kan nå raskt lokalisere raden ved å bruke oppføringene til de indekserte feltene.

Se for deg en databaseindeks som ligner på en bokindeks. Vi kan raskt finne flere sider basert på nøkkelord ved å søke gjennom indeksen.

Når skal ikke indekser brukes?

Selv om indekser er ment å forbedre databaseeffektiviteten, er det situasjoner når de skal se bort fra. Når skal en indeks brukes? Følgende faktorer kan hjelpe deg med å ta din beslutning.

Det anbefales ikke å bruke indekser i:

  • Bord med et lite fotavtrykk
  • Tabeller som er oppdatert eller satt inn i enorme partier ofte.
  • NULL-tunge kolonner.
  • Ofte modifiserte kolonner.

Eksempel 1

Først må vi bygge bordet for å se indeksene. Vi har vist en tabell nedenfor, som vi har laget med Create Command i SQLite og også definerte felt i denne tabellen.

Lag tabell Story_books (
BOOK_ID INT Primærnøkkel ,
Book_name Char (10) ,
BOOK_PRICE FLAOT
);

Nå har vi opprettet en indeks over en enkelt kolonne. En en-kolonneindeks er bygget rundt en enkelt databasekolonne. Vi kan passere flere kolonner om gangen for å lage indekser i en bestemt tabell. Vi har gitt et enkelt feltnavn boknavn fra tabellen Story_books i følgende spørsmål.

# Opprett indeks IDX_STORY_BOOKS_BOOK ON STORY_BOOKS (BOOK_NAME);

Ved å bruke .Indekser Metode, indeksen som er opprettet i tabellen er synlig som følger:

Unike indekser brukes til dataintegritet så vel som ytelse. En unik indeks forhindrer at duplikatverdier blir lagt inn i tabellen. Ved hjelp av følgende spørsmål har vi opprettet en unik indeks på Story_book -tabellens bok_id -kolonne.

Lag unik indeks idx_book_id
På Story_books (Book_id);

Utgangen viser at indeksen er blitt opprettet.

Vi har opprettet en selektiv indeks på en historie_bokstabell ved bare å inkludere en del av postene i indeksen. Som vi brukte en hvor klausulen, er det bare de postene der Book_price ikke er null, får en delvis indeks. Poster med en nullverdi for boknavn vil ikke være en del av indeksen.

Opprett indeks IDX_BOOK_PRICE
På Story_books (Book_Price)
Der Book_price ikke er null;

Når du utfører .indekser kommandoen, den viser indeksene i tabellen. Som du kan se, er den Book_Price -indeksen inkludert.

Eksempel 2

Sqlites drop -kommando brukes til å fjerne en indeks. Å slippe en indeks bør gjøres med forsiktighet fordi funksjonalitet kan bli påvirket. Her, med drop -kommandoen, har vi en hvis eksisterer klausul. Hvis den valgte indeksen ikke eksisterer, vil intet unntak bli generert. Det er ikke obligatorisk å bruke IF Exists -leddet; Vi kan hoppe over dette og bare slippe bordet. Vi har droppet indeksbokenavnet fra tabellen Story_book med følgende spørring.

Slipp indeks hvis eksisterer idx_story_books_book_name;

Indeksen med kolonnen Book_name slippes som vist i skallet.

Eksempel 3

Vi har brukt sqlite_master -tabellen i stedet for å bruke .Indekser kommando. Selv om denne tabellen inneholder mer enn bare indekser, kan du bare bruke hvor leddet for å begrense den til indekser.

PLUKKE UT
Navn, TBL_NAME
...> fra SQLITE_MASTER
...> hvor type = 'indeks';

Vi har tabellen som hver indeks tilsvarer. TBL_NAME -kolonnen holder oversikt over dette som følger.

Konklusjon

I dette avsnittet har vi gått over det grunnleggende om å etablere en indeks i SQLite og diskutere hvordan vi kan vise at indekser i SQLite med noen eksempler. Disse eksemplene er enkle å bruke og også måtene som viser indeksene i SQLite. Når du leser hele artikkelen, kan du være ekstremt klar.