Come indice di una colonna del database I

voti
48

Eventualmente, posso ottenere risposte per ogni server di database.

Per una descrizione di come funziona indicizzazione check out: Come funziona il database di indicizzazione?

È pubblicato 04/08/2008 alle 12:21
fonte dall'utente
In altre lingue...                            


10 risposte

voti
54

Il seguente è standard SQL92 così dovrebbe essere sostenuta dalla maggioranza dei RDMBS che utilizzano SQL:

CREATE INDEX [index name] ON [table name] ( [column name] )
Risposto il 04/08/2008 a 12:25
fonte dall'utente

voti
6

SQL Server 2005 offre la possibilità di specificare un indice di copertura. Questo è un indice che include dati di altre colonne al livello foglia, in modo da non dover tornare al tavolo per ottenere le colonne che non sono inclusi nelle chiavi di indice.

creare cluster my_idx indice su my_table (my_col1 asc, my_col2 asc) include (my_col3);

Questo ha un valore inestimabile per una query che ha my_col3 nell'elenco di selezione, e my_col1 e my_col2 nella clausola dove.

Risposto il 13/08/2008 a 15:05
fonte dall'utente

voti
4

In SQL Server, è possibile effettuare le seguenti operazioni: ( MSDN link alla lista completa delle opzioni.)

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

(Ignorando alcune opzioni più avanzate ...)

Il nome di ogni indice deve essere ampia banca dati unica.

Tutti gli indici possono avere più colonne, e ogni colonna può essere ordinata in qualsiasi ordine che si desidera.

Indici cluster sono unici - uno per ogni tavolo. Non possono avere INCLUDEd colonne.

indici non cluster non sono unici, e possono avere fino a 999 per tavolo. Possono hanno incluso le colonne e le clausole WHERE.

Risposto il 15/06/2012 a 19:01
fonte dall'utente

voti
4

Per pytables pitone, gli indici non hanno nomi e sono tenuti a singole colonne:

tables.columns.column_name.createIndex()
Risposto il 23/01/2012 a 16:13
fonte dall'utente

voti
2

Si dovrebbe solo indice delle colonne su cui si esegue la ricerca frequenti / query.

Si supponga di avere una tabella denominata studenti in cui si memorizzano StudentID, Nome, golf, ecc Grade E c'è bisogno di cercare di frequente la colonna StudentID per informazioni sugli studenti specifici.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

È necessario creare un indice su quella colonna, dal momento che potrà accelerare il processo di ricerca. È possibile creare un indice su una colonna esistente con il seguente codice:

CREATE INDEX IndexStudentID

ON Students (StudentID)

Il nome IndexStudentID può essere qualsiasi cosa, scegliere qualcosa che ha senso per voi.

Tuttavia, la creazione di un indice aggiungerà un certo overhead al database. Ci sono molti strumenti che possono aiutare, per esempio, io sto usando SQLDbm come io mi si addice meglio.

Risposto il 29/08/2017 a 09:53
fonte dall'utente

voti
2

Per creare indici seguenti cose possono essere utilizzati:

  1. Crea un indice in una tabella. valori duplicati sono consentiti:

    CREATE INDEX nome_indice ON nome_tabella (nome_colonna)

  2. Crea un indice univoco in una tabella. I valori duplicati non sono consentiti:

    CREATE UNIQUE index_name INDEX ON nome_tabella (nome_colonna)

  3. indice cluster

    CREATE CLUSTERED CL_ID INDEX ON SALES (ID);

  4. indice non cluster

    CREATE INDEX NONCLUSTERED NONCI_PC SULLE VENDITE (CodiceProdotto);

fare riferimento http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server per i dettagli.

Risposto il 02/06/2015 a 13:38
fonte dall'utente

voti
1

1.

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. Su una colonna a più

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
Risposto il 17/01/2017 a 10:48
fonte dall'utente

voti
0

Possiamo usare sintassi seguente per creare l'indice.

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

Se non vogliamo valore duplicato di poter poi possiamo aggiungere UNICO durante la creazione dell'indice come segue

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

Possiamo creare indice sulla colonna multipla dando multipla nome della colonna separati da ' '

Risposto il 07/08/2019 a 22:09
fonte dall'utente

voti
0

Un indice non è sempre necessario per tutti i database. Per esempio: Kognitio aka il motore WX2 non offre una sintassi per l'indicizzazione come il motore di database si prende cura di esso in modo implicito. Dati prosegue tramite round robin partizionamento e Kognitio WX2 ottiene i dati dentro e fuori del disco nel modo più semplice possibile.

Risposto il 05/06/2018 a 10:24
fonte dall'utente

voti
0

Dal momento che la maggior parte delle risposte sono date per i database SQL, sto scrivendo questo per i database NoSQL, in particolare per MongoDB.

Sotto è la sintassi per creare un indice nella MongoDB usando shell mongo.

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

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

Nell'esempio sopra un singolo indice decrescente chiave si crea nel campo nome.

Tenete a mente indici MongoDB utilizza la struttura dei dati B-tree.

Ci sono diversi tipi di indici possiamo creare in MongoDB, per ulteriori informazioni fare riferimento al di sotto del collegamento - https://docs.mongodb.com/manual/indexes/

Risposto il 01/06/2018 a 19:05
fonte dall'utente

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