Hoe kan ik de index van een database-kolom

stemmen
48

Hopelijk kan ik antwoorden voor elke database-server te krijgen.

Voor een overzicht van hoe het indexeren werkt kijk op: Hoe werkt indexeren van databases werk?

De vraag is gesteld op 04/08/2008 om 12:21
bron van user
In andere talen...                            


10 antwoorden

stemmen
54

Hier volgt SQL92 standaard zo worden gesteund door de meerderheid van RDMBS die SQL gebruiken:

CREATE INDEX [index name] ON [table name] ( [column name] )
antwoordde op 04/08/2008 om 12:25
bron van user

stemmen
6

SQL Server 2005 biedt u de mogelijkheid om een ​​bedekking index opgeven. Dit is een index die gegevens uit andere kolommen op het blad niveau omvat, dus je hoeft niet om terug te gaan naar de tafel kolommen die niet zijn opgenomen in de index sleutels te krijgen.

maken geclusterde index my_idx op my_table (my_col1 ASC, my_col2 op) bevatten (my_col3);

Dit is van onschatbare waarde voor een query die heeft my_col3 in de lijst selecteren en my_col1 en my_col2 in waar clausule.

antwoordde op 13/08/2008 om 15:05
bron van user

stemmen
4

(: In SQL Server, kunt u het volgende doen MSDN Link naar de volledige lijst met opties.)

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

(Het negeren van wat meer geavanceerde opties ...)

De naam van elke index moet unieke database breed.

Alle indexen kan meerdere kolommen bevatten, en elke kolom kan besteld worden in welke volgorde je wilt.

Geclusterde indexen zijn uniek - één per tafel. Ze kunnen niet hebben INCLUDEd kolommen.

Geclusterde indexen zijn niet uniek, en kan tot 999 per tafel. Ze kunnen hebben opgenomen kolommen en waar clausules.

antwoordde op 15/06/2012 om 19:01
bron van user

stemmen
4

Voor python pytables, hoeft indexen geen namen en ze zijn gebonden aan enkele kolommen:

tables.columns.column_name.createIndex()
antwoordde op 23/01/2012 om 16:13
bron van user

stemmen
2

Je moet alleen het indexeren van de columns die je uitvoert frequent search / queries.

Stel dat u een tabel met de naam Studenten waar je slaan StudentID, Name, Course, Grade enz. En je moet vaak zoeken in de kolom StudentID voor informatie over specifieke studenten.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

Je moet een index te maken op die kolom, omdat het versnelt het zoekproces. U kunt een index op een bestaande kolom met de volgende code te maken:

CREATE INDEX IndexStudentID

ON Students (StudentID)

De naam IndexStudentID kan van alles zijn, kies iets die zinvol zijn voor u.

Echter, het creëren van een index zal een aantal overheadkosten toe te voegen aan uw database. Er zijn veel tools die kunnen helpen, bijvoorbeeld, gebruik ik SQLDbm zoals ik het me het meest geschikt is.

antwoordde op 29/08/2017 om 09:53
bron van user

stemmen
2

Voor het maken van indexen volgende dingen kunnen worden gebruikt:

  1. Maakt een index op een tafel. Dubbele waarden zijn toegestaan:

    CREATE INDEX index_name ON table_name (column_name)

  2. Zorgt voor een unieke index op een tafel. Dubbele waarden zijn niet toegestaan:

    CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. geclusterde index

    CREATE geclusterde index CL_ID OP VERKOOP (ID);

  4. Niet-geclusterde index

    CREATE-geclusterde INDEX NONCI_PC ON SALES (ProductCode);

verwijzen http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server voor details.

antwoordde op 02/06/2015 om 13:38
bron van user

stemmen
1

1.

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. Op een multi-kolom

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
antwoordde op 17/01/2017 om 10:48
bron van user

stemmen
0

We kunnen volgende syntaxis gebruiken om index te maken.

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

Als we niet willen dubbele waarde dan mogen wij kunnen toevoegen UNIQUE tijdens het maken van index als volgt

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

We kunnen index op meerdere kolommen te creëren door het geven van naam meerdere kolommen, gescheiden door ' '

antwoordde op 07/08/2019 om 22:09
bron van user

stemmen
0

Een index is niet altijd nodig is voor alle databases. Voor bijvoorbeeld: Kognitio aka WX2 motor niet een syntax te bieden voor het indexeren als de database-engine zorgt impliciet. Gegevens gaat via round-robin partitionering en Kognitio WX2 krijgt gegevens in en uit de schijf op de meest eenvoudige manier.

antwoordde op 05/06/2018 om 10:24
bron van user

stemmen
0

Aangezien de meeste van de antwoorden die worden gegeven voor SQL-databases, doe ik dit schrijven voor NOSQL databases, speciaal voor MongoDB.

Hieronder vindt u de syntaxis om een ​​index in de MongoDB gebruik Mongo shell te creëren.

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

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

In het bovenstaande voorbeeld een enkele toets dalende index wordt gecreëerd op het veld naam.

Houd in gedachten MongoDB indexen maakt gebruik van B-tree datastructuur.

Er zijn meerdere soorten indexen we kunnen creëren in MongoDB, voor meer informatie wordt verwezen naar onderstaande link - https://docs.mongodb.com/manual/indexes/

antwoordde op 01/06/2018 om 19:05
bron van user

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