Syntaks:
Syntaksen til kraftindeksen er gitt nedenfor.
PLUKKE UT *Her vil indeks_listen inneholde ett eller flere kolonnenavn på tabellenavnet som brukes til å søke.
Forutsetninger:
Du må opprette en databasetabell med data i en MySQL -database for å sjekke Force Index -funksjonen til MySQL. Åpne terminalen og koble til MySQL -serveren ved å utføre følgende kommando.
$ sudo mysql -u root
Kjør følgende kommando for å opprette en database som heter test_db.
Opprette databasetest_db;Kjør følgende kommando for å velge databasen.
Bruk test_db;Kjør følgende spørsmål for å opprette en tabell som heter ansatte med fem felt.
Lag tabell 'ansatte' (Kjør følgende sett inn spørring for å legge til seks verdier i den ansatte tabellen.
Sett inn 'ansatte' ('id', 'navn', 'post', 'joining_date', 'lønn') verdierEksempel 1: Kontroller standardindeksen
Når en tabell opprettes, vil den primære nøkkelen bli definert som en indeks som standard. Kjør følgende kommando for å sjekke gjeldende indeksliste over de ansatte.
Vis indekser fra ansatte;Produksjon:
Følgende utdata vises etter utførelsen av spørringen ovenfor. Utgangen viser at Btree Indeks er tildelt for id felt av ansatte bord.
Hvis ingen indeks er tildelt for lønn felt av ansatte Tabell Etter å ha opprettet tabellen, blir alle poster over tabellen skannet av spørringsoptimisatoren for følgende spørring. De Forklare Nøkkelord brukes her for å få utførelsesinformasjonen til SELECT -spørringen.
Forklar velg * fra ansatteProduksjon:
Følgende utdata vises etter utførelsen av spørringen ovenfor. Utgangen viser at alle radene ble pålagt å utføre spørringen og filterdataene fra ansatte bord.
Eksempel-2: Kontroller utførelsen av spørringen etter å ha opprettet indeksen
Du må definere indeksen for lønn felt av ansatte Tabell for å optimalisere spørringen riktig. Kjør følgende spørsmål for å opprette indeksen for lønn felt av ansatt bord.
Opprette indeksindeks_salary for ansatte (lønn);Kjør følgende kommando igjen for å sjekke gjeldende indeksstatus for de ansattes tabell.
Vis indekser fra ansatte;Produksjon:
Følgende utgang vises etter å ha utført kommandoen ovenfor. Utgangen viser at det er to BTREE -indekser nå i de ansatte -tabellen.
Kjør forrige utvalgte spørring igjen for å sjekke utførelsesinformasjonen til spørringen. Utgangen fra forklaringsuttalelsen er kanskje ikke nøyaktig for tabellen som inneholder få poster eller kan variere for forskjellige henrettelser. Det er bedre å legge til store poster i tabellen for å få det tilnærmet riktige resultatet.
Forklar velg * fra ansatteProduksjon:
Følgende utdata vises etter utførelsen av spørringen ovenfor. Utgangen viser at 4 rader ble pålagt å utføre spørringen og filtrere dataene fra ansatte bord. I følge utdataene er spørringens utførelsestid 0.04 sekunder som fikk tilgang til 4 rader for å få utdataene.
Eksempel-3: Kontroller utførelsen av spørringen etter bruk av Force Index
Query Optimizer vil bruke den definerte indeksen eller ikke som avhenger av spørringens tilstand, antall poster for spørringen, og antall matchende rader i tabellen basert på tilstanden.
Kjør følgende spørring for å tvinge spørringsoptimisøren til å bruke INDEX_SALARY Indeks på tidspunktet for utførelse av spørring. De Force Index uttalelse brukes før hvor leddet i SELECT -spørringen for å tvinge spørringsoptimisatoren til å bruke INDEX_SALARY indeks.
Forklar velg * fra ansatteProduksjon:
Følgende utdata vises etter utførelsen av spørringen ovenfor. Utgangen viser at 4 rader ble pålagt å utføre spørringen og filtrere dataene fra ansatte bord. I følge utdataene er spørringens utførelsestid 0.00 sekunder som fikk tilgang til 4 rader for å få utdataene. Denne utgangen kan også variere for forskjellige henrettelser.
Konklusjon:
Force Index -funksjonen til MySQL er nyttig når du søker i den spesielle verdien i en tabell som inneholder et stort antall poster. Måten å lage en indeks for en tabell og tvinge spørringsoptimisatoren til å bruke den indeksen kraftig på tidspunktet for utførelsen av spørringen ved å bruke Force Index -setningen, er vist i denne opplæringen.