Indekser er spesielle oppslagstabeller at databasen søkemotor kan bruke til å øke hastigheten på innhenting av data. Enkelt sagt, en indeks er en peker til data i en tabell. En indeks i en database er svært lik en indeks på baksiden av en bok.
For eksempel, hvis du ønsker å referere til alle sider i en bok som diskuterer et bestemt tema, må du først se i indeksen, som lister opp alle emner alfabetisk, og blir deretter henvist til en eller flere spesifikke sidetall.
En indeks hjelper fremskynde SELECT spørringer og HVOR klausuler, men det bremser ned data input, med UPDATE og INSERT-setninger. Indekser kan opprettes eller falt med ingen effekt på data.
Opprette en indeks innebærer CREATE INDEX uttalelsen, som lar deg navngi indeksen, for å spesifisere bordet og hvilken kolonne eller kolonner å indeksere, og å indikere om indeksen er i stigende eller synkende rekkefølge.
Indekser kan også være unikt, lik den entydig begrensning i at indeksen hindrer doble oppføringer i kolonnen eller kombinasjon av kolonner som det er en indeks.
CREATE INDEX Command:
Den grunnleggende syntaks CREATE INDEX
er som følger:
CREATE INDEX index_name PÅ table_name;
enkelt kolonne Indexes:
A indeks enkelt kolonne er en som er laget basert på bare en kolonne i tabellen. Den grunnleggende syntaks er som følger:
CREATE INDEX index_nameON table_name (kolonne);
Unike Indexes:
Unike indekser brukes ikke bare for ytelse, men også for dataintegritet. En unik indeks tillater ikke noen like verdier som skal settes inn i tabellen. Den grunnleggende syntaks er som følger:
CREATE UNIQUE INDEX index_nameon table_name (kolonne);
Composite Indexes:
En sammensatt indeks er en indeks på to eller flere kolonner i en tabell. Den grunnleggende syntaks er som følger:
CREATE INDEX index_nameon table_name (COLUMN1, COLUMN2);
Enten å lage en indeks enkelt kolonne eller en sammensatt indeks, ta hensyn til kolonnen (e) som du kan bruke veldig ofte i en spørring er der klausulen som filterbetingelsene.
Skal det bare være én kolonne brukes, en indeks enkelt kolonne bør være førstevalget. Skulle det være to eller flere kolonner som ofte brukes i WHERE-leddet som filtre, ville den sammensatte indeksen være det beste valget
Implisitt Indexes.
Implisitt indekser er indekser som opprettes automatisk av databaseserveren når et objekt blir opprettet. Indeksene er automatisk opprettet for primærnøkkel begrensninger og entydige begrensninger
Eksempel
Følgende er et eksempel hvor vi vil skape en indeks på COMPANY bordet for lønn kolonne.
Sqlite > CREATE INDEX salary_index PÅ COMPANY (lønn);
Nå, la oss liste ned alle indeksene tilgjengelige på COMPANY bord ved hjelp av .indices
kommandoen som følger:
sqlite > .indices COMPANY
Dette vil gi følgende resultat, der sqlite_autoindex_COMPANY_1
er et implisitt indeks som ble opprettet da bordet selv ble opprettet.
salary_indexsqlite_autoindex_COMPANY_1
Du kan liste ned alle indeksene database bredt som følger:
sqlite > SELECT * FROM sqlite_master WHERE type = 'index';
DROP INDEX Command:
En indeks kan bli droppet å bruke SQLite DROP
kommando. Forsiktighet bør tas når slippe en indeks fordi resultatene kan bli bremset eller forbedret
Den grunnleggende syntaks er som følger:.
DROP INDEX index_name;
Du kan bruke følgende utsagn for å slette tidligere opprettet Indeks:
sqlite > DROP INDEX salary_index;
Når bør indekser unngås
Selv om indeksene er beregnet på å forsterke en database ytelse, det er tider når de bør unngås?. Følgende retningslinjer indikere når bruken av en indeks bør revurderes.
avskriftene bør ikke brukes på små bord
Tabeller som har hyppig, stort batch oppdatere eller sette driften.
avskriftene bør ikke brukes på kolonner som inneholder et høyt antall NULL verdier.
Kolonner som ofte manipulert bør ikke bli indeksert.