Hvordan kan jeg indeksere en database kolonne

stemmer
50

Forhåpentligvis kan jeg få svar for hver database server.

For en oversikt over hvordan indeksering fungerer sjekk ut: Hvordan database indeksering arbeid?

Publisert på 04/08/2008 klokken 11:21
kilden bruker
På andre språk...                            


10 svar

stemmer
56

Det følgende er SQL92 standard så bør støttes av de fleste RDMBS som bruker SQL:

CREATE INDEX [index name] ON [table name] ( [column name] )
Svarte 04/08/2008 kl. 11:25
kilden bruker

stemmer
6

SQL Server 2005 gir deg muligheten til å angi en dekker indeks. Dette er en indeks som inneholder data fra andre kolonner på bladet nivå, slik at du ikke trenger å gå tilbake til bordet for å få kolonner som ikke er inkludert i indeksen nøklene.

skape nonclustered indeks my_idx på my_table (my_col1 ASC, my_col2 ASC) innbefatter (my_col3);

Dette er uvurderlig for en spørring som har my_col3 i valglisten, og my_col1 og my_col2 i WHERE-leddet.

Svarte 13/08/2008 kl. 14:05
kilden bruker

stemmer
4

I SQL Server, kan du gjøre følgende: ( MSDN Link til full liste med alternativer.)

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> ( column [ ASC | DESC ] [ ,...n ] ) 
    [ INCLUDE ( column_name [ ,...n ] ) ]
    [ WHERE <filter_predicate> ]

(Ignorerer noen mer avanserte alternativer ...)

Navnet på hver indeks må være unik database bred.

Alle indekser kan ha flere kolonner, og hver kolonne kan bestilles i hvilken rekkefølge du vil.

Gruppert indekser er unik - en per bord. De kan ikke ha INCLUDEd kolonner.

Nonclustered indekser er ikke unike, og kan ha opptil 999 per bord. De kan ha tatt med kolonner, og hvor klausuler.

Svarte 15/06/2012 kl. 18:01
kilden bruker

stemmer
4

For python pytables, trenger indekser ikke har navn, og de er bundet til enkelt kolonner:

tables.columns.column_name.createIndex()
Svarte 23/01/2012 kl. 15:13
kilden bruker

stemmer
2

Du bør bare indeks kolonnene som du utfører hyppige søk / spørringer.

Tenk deg at du har en tabell som heter Studenter der du lagrer StudentID, navn, Kurs, Grade etc. Og du ofte trenger å søke i StudentID kolonnen for informasjon om spesifikke studenter.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

Du bør opprette en indeks på kolonnen, siden det vil øke hastigheten på søkeprosessen. Du kan opprette en indeks på en eksisterende kolonne med følgende kode:

CREATE INDEX IndexStudentID

ON Students (StudentID)

Navnet IndexStudentID kan være alt, velg noe som gir mening for deg.

Imidlertid vil skape en indeks legge litt overhead til databasen. Det finnes mange verktøy som kan hjelpe, for eksempel, jeg bruker SQLDbm jeg det passer meg best.

Svarte 29/08/2017 kl. 09:53
kilden bruker

stemmer
2

For å opprette indekser følgende ting kan brukes:

  1. Oppretter en indeks på et bord. Like verdier er tillatt:

    CREATE INDEX index_name ON table_name (kolonne)

  2. Oppretter en entydig indeks på et bord. Like verdier er ikke tillatt:

    Lag unike INDEX index_name PÅ table_name (kolonne)

  3. gruppert indeks

    CREATE gruppert indeks CL_ID PÅ SALGS (ID);

  4. Ikke-gruppert indeks

    CREATE NONCLUSTERED INDEX NONCI_PC PÅ SALGS (ProductCode);

refererer http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server for detaljer.

Svarte 02/06/2015 kl. 13:38
kilden bruker

stemmer
1

1.

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. På en multi-kolonne

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
Svarte 17/01/2017 kl. 10:48
kilden bruker

stemmer
0

Vi kan bruke følgende syntaks for å lage indeks.

CREATE INDEX <index_name> ON <table_name>(<column_name>)

Hvis vi ikke ønsker duplikat verdi å få lov så kan vi legge til UNIK mens du oppretter indeksen som følger

CREATE UNIQUE INDEX <index_name> ON <table_name>(<column_name>)

Vi kan lage indeks på flere kolonner ved å gi flere kolonnenavn atskilt med ' '

Svarte 07/08/2019 kl. 22:09
kilden bruker

stemmer
0

En indeks er ikke alltid nødvendig for alle databasene. For eksempel: Kognitio aka WX2 motoren ikke tilbyr en syntaks for indeksering som databasemotoren tar seg av det implisitt. Data foregår via round-robin partisjonering og Kognitio WX2 får data av og på disken på enklest mulig måte.

Svarte 05/06/2018 kl. 10:24
kilden bruker

stemmer
0

Siden de fleste av svarene er gitt for SQL databaser, jeg skriver dette for NoSQL databaser, spesielt for MongoDB.

Nedenfor er syntaksen til å skape en indeks i MongoDB ved hjelp Mongo skall.

db.collection.createIndex( <key and index type specification>, <options> )

eksempel - db.collection.createIndex( { name: -1 } )

I eksemplet ovenfor en enkelt tast synkende indeksen er opprettet på navnefeltet.

Huske på MongoDB indeksene bruker B-tree datastruktur.

Det finnes flere typer indekser vi kan lage i mongodb, for mer informasjon se linken nedenfor - https://docs.mongodb.com/manual/indexes/

Svarte 01/06/2018 kl. 19:05
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more